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