reactjs - 停止从 RTKQ 接收流式更新的正确方法是什么?
问题描述
我试图调用一个取消订阅函数:
unsubscribeFromThingIds(arg.tids);
在本例中的await cacheEntryRemoved;
行之后。
函数定义如下:
export const unsubscribeFromThingIds = (tids: string[]) => {
followedThingIds = followedThingIds.filter(
id => !tids.includes(id)
);
const argument = { tids: followedThingIds } as ITimersChannelInitParams;
myIo!.emit("configure timers channel", argument);
};
(myIo
Socket.IO 客户端在哪里)
这目前对我不起作用。我目前正在调试这个问题。
我还尝试使用useEffect
带有返回清理函数的钩子在组件卸载时运行它,如下所示:
useEffect(() => {
return () => {
unsubscribeFromThingIds(getTimersQueryParams.tids);
};
}, [getTimersQueryParams]);
我想询问这些信息,因为我不确定我应该更多地研究这两个想法中的哪一个,或者我是否可以做另一件事更好。
解决方案
难道只是你不耐烦吗?缓存条目将keepUnusedDataFor
在最后一个组件停止使用后 60 秒(该选项)被删除。
通常:cacheEntryRemoved
如果您在onCacheEntryAdded
. 如果您希望它更早发生,只需使用更短的keepUnusedDataFor
持续时间。
推荐阅读
- javascript - 正则表达式 - 搜索匹配特定字符串
- c# - 有没有比手动分配每个图像更有效的方法从资源文件夹中获取图像?
- php - 安装后的文件夹名称和 Joomla 组件链接
- python - 解码 JSON 字符串中的 UTF-8 编码
- sql-server - 带有 UNION 的 SQL Server 索引视图
- php - SQLSTATE[HY000] [2002] 参数无效(SQL:select * from information_sch ema.tables where table_schema = mamaput and table_name = migrations)
- css - react-jss 不缓存 css 类
- html - 发生错误时,我发现很难在边框上显示红色
- javascript - 网站上自定义预加载器的黑色背景
- javascript - 为什么我的清除命令搞砸了?