Реагируй: получи данные документа из редукционного пожарного магазина - PullRequest
0 голосов
/ 20 октября 2018

Я пытаюсь передать компоненту Post атрибуты пользователя (displayName, Email ecc ...), но мне говорят, что это Undefined.

В посте у меня был объект "post"с помощью attr post.authorid, когда я пытаюсь передать "post.authorid" в коллекцию "/ users" с doc как ${ownProps.post.authorid}, это приводит к сбою.

Компонент Post отображается на компонент PostList и отображается наКомпонент DashBoard.

Как я могу получить данные документа "/ users" с помощью Authorid сообщения?

POST COMPONENT CODE

import React from 'react'
import Card from '@material-ui/core/Card';
import CardHeader from '@material-ui/core/CardHeader';
import CardContent from '@material-ui/core/CardContent';
import { Typography } from '@material-ui/core'
import moment from 'moment'


const Post = ({post}) => {
return(   
        <Card >
            <CardHeader title={post.title} />
            <CardContent>
                <Typography variant='subheading'>{post.description}</Typography> 
                <br/>
                <Typography variant='overline'>Location: {post.location}</Typography>
                <br/>
                <p>{moment(post.date.toDate().toString()).fromNow()}</p>
            </CardContent>
        </Card>

)
}

export default Post 

КОМПОНЕНТ ПОЧТОВОГО СПИСКА

import React from 'react'
import styled from 'styled-components'
import Post from './Post'

const PostListContainer = styled.div`
display:grid;
grid-gap:25px;
max-width:1000px;
margin: 0 auto;
padding-top:100px;
padding-bottom:20px;`


const PostList  = ({posts}) => {
    return(
        <div>
            <PostListContainer>
                <h3>Post List:</h3> 
                {posts && posts.map(one => {
                    return(
                    <Post post={one} key={one.id}/>
                    )
                })}
            </PostListContainer>
        </div>
    )
}

export default PostList

КОМПОНЕНТ ПАНЕЛИ

import React from 'react'
import PostList from './PostList'
import AuthStatus from './AuthStatus';
import { connect } from 'react-redux';
import { Redirect } from 'react-router-dom';
import { firestoreConnect } from 'react-redux-firebase';
import { compose } from 'redux';



const Dashboard = (props) => {
    const { auth , posts } = props;
    return(
        <div>
            <AuthStatus/>
            <PostList posts={props.posts}/>
        </div>
    )
}

const mapStateToProps = (state) => {
    return {
        auth: state.firebase.auth,
        posts: state.firestore.ordered.posts
    }
}

export default compose(connect(mapStateToProps),
firestoreConnect([{
    collection: 'posts',
    orderBy:['date','desc']
}])
)(Dashboard)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...