メインコンテンツにスキップ

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