如果作为用户正在执行的某些高级操作的一部分,我必须设置来自多个不同原子的状态,我希望在将整个状态设置为批处理时,任何受影响的原子的所有订阅组件仅重新渲染一次。Recoil可以做到这一点吗?
问问题
370 次
1 回答
1
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>
);
};
于 2021-04-16T14:16:57.330 回答