You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RTKQ中向selectFromResult、onQueryStarted传递cacheKey的推荐方法

RTKQ cacheKey 存储复用官方方案
  • 不要手动存储生成后的cacheKey
    RTKQ内部会根据接口调用时传入的参数自动计算cacheKey,官方推荐直接存储原始调用参数作为缓存的唯一标识,不需要维护cacheKey本身。你可以通过api.endpoints.<yourEndpoint>.select(<queryArgs>)生成对应缓存条目的selector,在selectFromResult等任意可以访问Redux store的位置获取对应缓存数据,逻辑更稳定也不需要关心RTKQ内部的cacheKey生成规则。
  • 生命周期回调可直接获取关联上下文
    onQueryStarted、transformResponse、onCacheEntryAdded等RTKQ内置生命周期回调的入参中,已经包含了当前请求的调用参数、缓存条目实例、请求ID等信息,你可以直接在回调内定位当前缓存,不需要提前存储cacheKey。
  • 同组件上下文直接读取hook返回值
    在调用useQuery/useLazyQuery的组件内,cacheKey相关的关联标识可以直接从hook的返回值中获取,不需要额外存储。

你当前将cacheKey存入自定义slice的方案不推荐长期使用。cacheKey属于RTKQ内部运行时生成的标识,官方没有对外承诺其生成规则的长期稳定性,后续版本迭代可能会导致你的存储逻辑失效,同时手动维护cacheKey的写入、清除逻辑也容易出现数据不同步的问题。

内容的提问来源于stack exchange,提问作者radulle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 07:30:01