手动更新使用React.createElement()创建的组件的道具

时间:2019-06-06 19:06:41

标签: javascript reactjs

我尝试更新像这样创建的react组件的道具:

contentElement = FormDialog.popups[this.props.popupType]
contentElement.props = stuff // <--- immutable

请注意,FormDialog.popups是静态对象。

起初,我是通过以下方式实现弹出窗口的:

contentElement = React.createElement(EditProfile, {
    ...this.props,
    updatePendingData: this.updatePendingData.bind(this)
})

现在,我想让这种实现更加动态,但是我找不到任何解决方案(也许还因为我真的不知道如何用Google搜索)。

我想摆脱像EditProfile这样的硬编码名称。所以我的计划是AppRoot组件将所需的弹出窗口注册到root-popup-component的静态对象中:

// inside app-root
componentDidMount() {
   FormDialog.popups.editVersorgung = React.createElement(EditVersorgung)
}

当触发特定事件时,this.props.popupType中的FormDialog由应用程序根组件设置。现在,我希望这个FormDialog能够在他的静态弹出窗口数组中查看,选择正确的数组并将一些道具传递给组件。我该如何实现?

问候信使

0 个答案:

没有答案