0

我很难弄清楚如何使许多 Recoil 原子状态相互依赖。

例如,(这不是我的用例,但它是我遇到问题的概念的简单演示),想象一个单选按钮组,其中每个单选按钮的状态由 atom<boolean> 保存。并且单选按钮在反应树上都彼此远离并且不共享父级。

当一个原子的状态变为真时,所有其他原子的状态都需要将自己设置为假。当所有原子都分布时,如何实现这样的事情?

(对于我的实际情况,我的原子包含对象而不是布尔值,并且其他原子需要以某些方式更改,具体取决于该对象中的字段以及更改原子。)

4

1 回答 1

0

我最终通过在我的 atomFamily 周围创建一个 selectorFamily 来解决这个问题,然后只与 selectorFamily 而不是直接与 atomFamily 交互。

selectorFamily 的 set() 属性具有 ({get, set}) 参数,可用于与我的 atomFamily 生成的多个原子进行交互。在我的 set() 中,我使用族参数、传入状态和现有状态(通过提供的 get() 获取)来有条件地执行我需要的状态转换。

于 2021-07-16T22:56:32.707 回答