教程 > Recoil.js > Recoil 手册 阅读:12

useRecoilTransactionObserver_UNSTABLE(callback)

提示: 请注意此 API 目前尚处于不稳定状态

此钩子订阅每次更改 Recoil atom 状态时执行的回调函数。多个更新可以在一个事务中批处理。此钩子对于持久化状态更改、开发工具、构建历史等非常有用。

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

此回调函数为 React 批处理事务提供当前和先前状态的 Snapshot。如果你只想订阅单个 atom 的更改,请考虑使用 effects 代替。将来,我们可能会允许在特定条件下订阅,或者为了提升性能提供防抖功能。

调试示例

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>
  );
}

查看笔记

扫码一下
查看教程更方便