扫码一下
查看教程更方便
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>
);
}