如何在 Recoil 中实现相互依赖的状态?

问题描述

我无法弄清楚如何使多个 Recoil 原子状态相互依赖。

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

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

(对于我的实际情况,我的原子包含对象而不是布尔值,其他原子需要以特定方式更改,具体取决于该对象中的字段以及哪个原子发生了更改。 )

解决方法

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

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...