【发布时间】:2017-05-17 16:48:55
【问题描述】:
我正在尝试将道具传递给子组件,但孩子总是收到一个空的。 这是使其更清晰的代码。
当我将状态传递给子组件时,它可以工作 这是工作代码:
render() {
return (
<div>
<PostList list={ this.state.posts }></PostList>
</div>
);
}
但就我而言,我想从 redux 状态传递道具
代码无效:
render() {
return (
<div>
<PostList list={ this.props.posts }></PostList>
</div>
);
}
}
function mapStateToProps(state) {
return {
posts: state.posts.all,
postDetail: state.posts.post
}
}
任何想法为什么 PostList 在第二种情况下得到一个空对象,即使 this.props.posts 在调用组件中实际上不是空的?
谢谢
【问题讨论】:
-
请展示整个组件类以及如何将组件连接到 Redux 存储区。
-
你在用
connect()吗? -
是的,我使用过 connect() 并且 this.props.posts 出现在同一个组件中,就像我执行 this.props.posts.map(x=> x) 一样,结果是正确的。 . 只有当我尝试将 this.props.posts 作为道具放入
-
您能否至少在使用该道具的地方添加 PostList 组件的代码
-
@JaredDykstra 是的,这是故意的,我刚刚为该组件创建了一个本地状态 this.state = {posts : [items here]} 它在使用该本地状态时被很好地传递,但不是在我使用来自 mapStateToProps 的那个,即使 this.props.state 在该组件中运行良好,而不是当我将它作为道具传递给
时
标签: javascript reactjs redux react-redux react-jsx