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