是否可以更新由React.createElement创建的React组件?

时间:2018-08-08 11:49:22

标签: javascript reactjs

我有代码,可以创建具有动态行数的动态表-每行都是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]的某些子组件的样式和数据?

1 个答案:

答案 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