使用嵌套道具反应循环

时间:2017-09-01 18:28:33

标签: javascript reactjs

如何循环此道具?

enter image description here

尝试循环这样的事情:

for (var key in this.props.data.data) {

    this.state.newData.push(
        <NewData key={key} />
    );
}

不起作用。

2 个答案:

答案 0 :(得分:1)

这样的事情应该有效:

const newData = this.props.data.data.map(key => (<NewData key={key} />));
this.setState({ newData });

两个值得注意的变化:

  1. 使用Array.prototype.map迭代数组而不是for - in循环。
  2. 使用setState设置状态而不是直接设置状态。在构造函数之外,您应该始终使用setState。有关详细信息,请参阅https://facebook.github.io/react/docs/state-and-lifecycle.html

答案 1 :(得分:1)

你必须使用setState来改变状态:

var newArr = [];
for (var key in this.props.data.data) {
    newArr.push(<NewData key={key} />);
}
this.setState( {newData: newArr });