我有代码,创建具有动态行数的动态表-每行都是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 stringify提供了TypeError: Converting circular structure to JSON
,这很好,不幸的是我不能探索这个对象的结构。
所以-我的问题是-我可以在this.state.rows[rowNumber]
上调用一些方法来更新这个组件的样式和数据吗?或者,我甚至可以访问子组件并更新this.state.rows[rowNumber]
的某些子组件的样式和数据
发布于 2018-08-08 12:09:20
我不知道为什么在这个上下文中需要React.createElement
,而您可以像下面这样调用JSX form中的元素:{ this.props.data.map(row => <ScheduleRow {...row} />) }
但是一般来说,一个组件是在它的props
/state
更新的时候。因此,当您的this.props.data
被修改时,组件将重新呈现并更新子组件。
注意:请勿使用this.state = //whatever
设置状态签出本文:https://medium.com/@baphemot/understanding-reactjs-setstate-a4640451865b
https://stackoverflow.com/questions/51745993
复制