跳至主要內容

useRecoilTransactionObserver_UNSTABLE(callback)

說明請考慮這個 API 不穩定

這個掛鉤會訂閱一個回呼,以便在每個有變更 Recoil 原子狀態時執行。多個更新可能會在單一交易中批次處理。此掛鉤非常適合持續變更狀態、開發工具、建立記錄等。

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

回呼會提供 React 批次交易的目前狀態和前一個狀態的 快照。如果您只想訂閱個別原子的變更,請考慮使用 effect。在未來,我們可能允許訂閱特定條件或提供效能優化機制。

除錯範例

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