useRecoilRefresher_UNSTABLE(state)
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>
);
}