多组件共享Redux Toolkit useMutation数据及fixedCacheKey可用性问询
useMutation 的 fixedCacheKey 参数可用性解答
- 版本适配说明
你当前使用的 Redux Toolkit 1.6.2 版本不支持fixedCacheKey参数,该功能是在 Redux Toolkit v1.7.0 版本正式上线的,这就是你传入该参数后代码抛出错误的原因。 - 功能作用
fixedCacheKey就是为了解决你当前遇到的多组件无法共享useMutation返回数据/请求状态的问题:多个组件调用同一个 mutation hook 时,只要传入相同的fixedCacheKey字符串,就会共享同一份缓存的请求状态、返回结果,无需额外手动做跨组件状态同步。 - 落地建议
- 先将项目依赖的
@reduxjs/toolkit包升级到 1.7.0 或更高版本 - 升级后参考以下用法接入:
// 组件1内调用 const [submitForm, { isLoading, data }] = useSubmitFormMutation({ fixedCacheKey: 'shared-form-submit' }) // 组件2内调用,和组件1共享状态与数据 const [submitForm, { isLoading, data }] = useSubmitFormMutation({ fixedCacheKey: 'shared-form-submit' })
- 日常使用时注意不要给同一个业务场景下的不同 mutation 设置重复的
fixedCacheKey,避免出现缓存串扰问题。
内容的提问来源于stack exchange,提问作者Sahil Verma
相关产品推荐
相关产品推荐

