跳至主要内容

useRecoilTransactionObserver_UNSTABLE(callback)

注意: 请将此 API 视为不稳定

此钩子订阅一个回调函数,该函数在 Recoil 原子状态发生变化时执行。多个更新可能会在单个事务中一起批处理。此钩子非常适合持久化状态更改、开发工具、构建历史记录等。

function useRecoilTransactionObserver_UNSTABLE(({
snapshot: Snapshot,
previousSnapshot: Snapshot,
}) => void)

回调函数提供了一个 快照,其中包含 React 批量事务的当前状态和先前状态。如果您只想订阅单个原子的更改,请考虑使用效果。将来,我们可能会允许订阅特定条件或提供去抖动以提高性能。

调试示例

function DebugObserver() {
useRecoilTransactionObserver_UNSTABLE(({snapshot}) => {
window.myDebugState = {
a: snapshot.getLoadable(atomA).contents,
b: snapshot.getLoadable(atomB).contents,
};
});
return null;
}

function MyApp() {
return (
<RecoilRoot>
<DebugObserver />
...
</RecoilRoot>
);
}