当 document.dispatchEvent 在 react js 中触发时,上下文丢失所有状态值

问题描述 投票:0回答:0

我在这个父组件中有一个父组件 A 我有 2 个子组件 B 和 C 组件 B 呈现一个表格,组件 C 是一个搜索选项,用户可以在其中输入搜索关键字,并且在此基础上,当用户从列表中选择任何项目时,将显示匹配项目列表,它将被添加到其中数据库和组件 A 我将调度自定义事件以刷新组件以向用户显示更新的表。

但是通过这样做,我的上下文状态(包含所有关键字的列表)正在丢失所有状态的数据。组件 A 包装在上下文中以存储关键字数据。

在我的父组件中,这就是我调度事件的方式

let event = new CustomEvent('ComponentBRefresh', { bubbles: true });
      document.dispatchEvent(event);

在我的子组件中,这是我处理表数据刷新的方式。

 document.addEventListener('ComponentBRefresh', this.silentRefresh);

如何防止上下文丢失状态并刷新组件。 由于某些限制,我不能使用 redux。

reactjs dom-events react-context dispatch custom-events
© www.soinside.com 2019 - 2024. All rights reserved.