如何在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;
}
});