在反应之外更新组件道具,丢失先前的道具和状态

问题描述

我正在尝试将道具更新为安装有React应用的更大应用中的react组件。

父类中,我使用以下命令成功创建了组件:

this.folderPickerProps = {
      portal: this.portal,user: this.newOwner || this.portal.portalUser,selectCancel: this.hideFolderPicker.bind(this),selectUpdate: this.handleSelectFolder.bind(this),isSaving: false,showFolderPicker: false
    };
this.folderPicker = createElement(FolderPicker,this.folderPickerProps); 
render(this.folderPicker,this.domNode.querySelector(".js-folder-picker"));

并更新我正在执行的组件

this.folderPicker = cloneElement(this.folderPicker,{ user: this.newOwner });
render(this.folderPicker,this.domNode.querySelector(".js-folder-picker"));

当我调用useEffect钩子时出现问题,该钩子仅在接收到特定的道具时才应运行,而是持续运行。当我查看该特定useEffect的prevIoUsProps时,它是未定义的。

 useEffect(() => {
    getFolders();
  },[props.user?.id]);

反之,子组件在调用ReactDOM.render时是否知道其先前的状态和道具?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)