メインコンテンツにスキップ

useRecoilTransactionObserver_UNSTABLE(callback)

: この API を不安定なものであるとして考慮してください

このフックは、Recoil Atom の状態が変更されるたびに実行されるコールバックを購読します。複数の更新を 1 つのトランザクションに一括してバッチ処理できます。このフックは、状態の変更の永続化、開発者ツール、履歴の構築などに最適です。

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