我有代码,可以创建具有动态行数的动态表-每行都是React组件(由createElement
创建):
render() {
var rows = this.props.data.map(function(rowData) {
return React.createElement(ScheduleRow, {
data: rowData
});
});
this.state.rows = rows;
return (
<div>
<table>
{rows}
</table>
</div>
);
}
我可以通过this.state.rows[rowNumber]
访问每一行,其JSON字符串化为TypeError: Converting circular structure to JSON
,这很好,不幸的是,我无法探索该对象的结构。
所以-我的问题是-我可以在this.state.rows[rowNumber]
上调用一些方法来更新此组件的样式和数据吗?也许我什至可以访问子组件并更新this.state.rows[rowNumber]
的某些子组件的样式和数据?
答案 0 :(得分:4)
当您只需要以JSX形式调用元素时,我不知道为什么在这种情况下为什么需要React.createElement
:
{ this.props.data.map(row => <ScheduleRow {...row} />) }
但是通常,组件是在props
/ state
进行更新时使用的。因此,当您修改this.props.data
时,组件将重新呈现并更新您的子组件。
注意:请勿使用this.state = //whatever
设置状态
查看这篇文章:https://medium.com/@baphemot/understanding-reactjs-setstate-a4640451865b