跳到主要內容

useRecoilRefresher_UNSTABLE(狀態)

useRecoilRefresher_UNSTABLE() 掛鉤會傳回一個可帶選取器呼叫的回呼,以清除與其相關的任何快取。如果選取器會發出任何非同步請求,這樣做會導致選取器重新評估並發出新的請求。例如,如果您想使用較新的資料更新或在錯誤後重新嘗試時,這便會很有用。(請參閱非同步資料查詢指南

您也可以從useRecoilCallback()或選取器的getCallback()更新快取。


type Refresher = () => void;

function useRecoilRefresher_UNSTABLE(state: RecoilValue): Refresher

目前要「更新」原子是不可行的動作,它會保留其目前的狀態。快取會被清除。由於封裝選取器通常用作抽象,更新一個選取器也會遞迴更新所有其依賴的選取器的快取。

範例

const myQuery = selector({
key: 'MyQuery',
get: () => fetch(myQueryURL),
});

function MyComponent() {
const data = useRecoilValue(myQuery);
const refresh = useRecoilRefresher_UNSTABLE(myQuery);

return (
<div>
Data: {data}
<button onClick={() => refresh()}>Refresh</button>
</div>
);
}