跳至主要内容

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