0

有没有办法保证两个反冲状态变化的顺序?就像我有

const setStateOne = useSetRecoilState(stateOne)
const setStateTwo = useSetRecoilState(stateTwo)

有没有一种规范的方法来更新 stateOne,然后才更新 stateTwo?两个 setter 都返回 void,所以我不知道何时进行了更新。如果他们回来Promise<void>了,那么我可以做类似的事情setOne().then(setTwo())

我的用例本质上是我有一个自定义钩子,它将Partial<Foo>各种道具映射到表示一种Foo类型的不同原子中,我有一个自定义钩子,它采用Bar extends Foo并映射Bar到表示Foo类型的各种原子加上其他原子(包括一种Bar类型)。

我需要合并 aBar然后Foo写入Bar原子。最简单的方法是重用我的自定义钩子来编写 Bar 然后应用 Partial 的东西。

否则,我需要编写合并函数,考虑到我们正在处理的实际状态的巨大,这将是,呃,庞大的。(以前的开发者有一个来自后端的对象,它不仅代表业务对象,还代表UI 状态)。我的代码只有业务对象。需要预加载 UI 状态,然后是我的业务对象。

重写提供 UI 状态的代码根本不是一种选择。时间和金钱的限制,以及缺乏做出决定或说服他人的权力。

4

0 回答 0