【发布时间】:2021-04-15 22:32:21
【问题描述】:
如果作为用户正在执行的某些高级操作的一部分,我必须设置来自多个不同原子的状态,我希望在将整个状态设置为批。 Recoil 可以做到这一点吗?
【问题讨论】:
标签: recoiljs
如果作为用户正在执行的某些高级操作的一部分,我必须设置来自多个不同原子的状态,我希望在将整个状态设置为批。 Recoil 可以做到这一点吗?
【问题讨论】:
标签: recoiljs
Recoil 默认批量更新状态(React 状态本身也是如此)。如果您不想批量更新代码,可以使用useRecoilCallback 挂钩,如下所示:
const Component = () => {
const batchUpdates = useRecoilCallback(({set}) => (valueA, valueB) => {
set(atomA, valueA);
set(atomB, valueB);
}, []);
return (
<button onClick={() => batchUpdates(someValueA, someValueB)}>Batch Updates</button>
);
};
【讨论】:
set(a, await reqA()); set(b, await reqB()) 之类的操作,则不会批量更新。