如果控件埋在数组中,当状态更改时,React不会重新呈现

时间:2018-07-11 19:25:31

标签: reactjs state rerender

我必须根据xml文件动态生成各种控件。当我将其他控件添加到名为Items的数组中,然后将各种控件数组Items包装在对话框控件中时,例如

this.dialogPanelInstance = <Dialog visible={this.state.visible}>{items}</Dialog>;

如果将this.dialogPanelInstance放在render方法中,则更改state.visibile时,对话框的可见性将不会重新呈现,这与Items数组中控件的可见性相同。

如果我直接在render方法中编写该行

<Dialog visible={this.state.visible}>{items}</Dialog>

该对话框处于打开和关闭状态,反映了“可见”状态,但其中控件的可见性仍未响应该状态。

1 个答案:

答案 0 :(得分:0)

您在哪里分配:

this.dialogPanelInstance = <Dialog visible={this.state.visible}>{items}</Dialog>;

如果它不在render方法内,则状态或属性更改将不会反映在this.dialogPanelInstance变量中,因为它不知道自己必须更新。在状态/属性更改期间,仅会重新运行render方法和某些其他反应生命周期方法。