【发布时间】:2020-11-29 14:29:48
【问题描述】:
上下文:
我正在开发一个 React 应用程序,并且有两个同级组件(注意:没有父子组件关系),它们都有一个相同的状态。它们需要异步更新(即当 Component1 导致状态更改时,Component2 应该知道该状态更改并将更改后的状态用作初始状态)。
问题:
我正在使用 useState(initialValue) 设置每个组件中的状态,但我注意到这导致我的状态不同步,因为状态取决于 Component1 或 Component2 所做的修改。
(即)
如果 Component1 通过某种组件方法导致状态从“红色”变为“绿色”,而在 Component2 中我会这样做:
useState("red")
那么 Component2 没有正确地得到来自 Component1 的“green”信息;而是从初始状态的初始化中接收到“红色”的信息。
PS: 请不要简单地告诉我将状态作为道具传递。提醒这些不是父子组件!
非常感谢任何帮助。我认为这是一个需要解决的重要且常见的 ReactJS 问题。
【问题讨论】:
-
看看使用上下文提供者共享状态
-
非常感谢!刚用谷歌搜索,这看起来正是我需要的!
-
@VigneshPethuraj 您所描述的是recoiljs 的用例。检查 Context API 和 reoiljs 并选择其中一个
标签: javascript reactjs functional-programming react-redux react-functional-component