【发布时间】:2018-11-09 16:17:25
【问题描述】:
我有一个父组件持有一个称为节点的状态,它被建立为一个数组。我正在尝试将 this.state.nodes 传递给子组件,并让该组件将数组作为子组件状态的一部分,但它不起作用。代码如下:
<ChildComponent nodes={this.state.graphNodes}/>
这是在返回语句中。经过一些测试/控制台记录后,我知道该道具正在通过。
在子组件中,我有:
this.state = {
nodes: this.props.nodes,
links: [],
totalNodes: [],
totalLinks: []
}
但是当我尝试在子组件渲染或返回中引用它或映射它或对它做任何事情时,它告诉我它是一个空数组。
【问题讨论】:
-
子组件构造函数中是否调用
super(props);?也可能是你父组件中的this.state.graphNodes是异步获取的,所以当你第一次渲染子组件时它还没有设置。 -
显示一个更完整的 ChildComponent 代码示例。另外,只需在您的子渲染函数中使用
this.props.nodes -
...无论如何,将东西从
proprs放到state通常是个糟糕的选择。更好地在孩子的render()中迭代this.props.nodes -
感谢大家的反馈。你说的都对...... this.props.nodes 直接使用而不是将其置于子组件状态下效果很好。
标签: javascript arrays reactjs