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