教程 > Recoil.js > Recoil 手册 阅读:88

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

查看笔记

扫码一下
查看教程更方便