如何在recoil中主动刷新seloctor中缓存的值

假设一个很常见的应用场景:有一个用户未读消息列表,我们希望在某一时刻主动刷新这个列表。

我们使用seloctor来实现这个功能:

const uuid = () => Math.random(); // 生成一个唯一的id即可

const forceUpdateState = atom({
  key: "forceUpdateState",
  default: uuid(),
});

const msgListState = selector({
  key: 'msgListState',
  get: async ({ get }) => {
    get(forceUpdateState); // 我们可以将forceUpdateState作为依赖,当forceUpdateState值变化时,重新计算msgListState的值
    const = resp = await getUserNotReadMsgList();
    return resp;
  }
});

参考资料

原文地址:https://www.cnblogs.com/hanshuai/p/15383415.html