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

多层嵌套SWRConfig时配置选项的生效规则是什么

多层嵌套SWRConfig的配置生效规则

嵌套使用SWRConfig时,配置会执行深度合并:同名字段以内层配置为准,未在内层配置中声明的上层选项会正常继承生效。

针对你提出的fetcher覆盖场景,具体生效逻辑如下:

  • 你示例中的内层SWRConfig显式配置了fetcher: customFetch,因此内层组件树覆盖范围内的所有SWR请求,都会使用customFetch作为请求方法,不会继承外层定义的默认fetch实现
  • 如果内层SWRConfig仅配置了错误重试、缓存策略、重验证规则等其他选项,未声明fetcher字段,内层组件依然会继承使用外层的全局fetcher,其余未重写的配置项也会自动沿用上一层的设置
  • 如果你需要在内层保留上层fetcher逻辑的基础上做扩展,可以通过useSWRConfig钩子获取上层配置后做包装,无需重复编写全量配置

对应场景的完整生效示例:

<SWRConfig
  value={{
    fetcher: (resource, init) =>
      fetch(resource, init).then((res) => res.json()),
    errorRetryCount: 3,
    revalidateOnFocus: false
  }}
>
  {/* 该层级组件默认使用全局fetcher,错误重试3次,关闭聚焦重验证 */}
  ...
  <SWRConfig
    value={{
      fetcher: customFetch, // 仅重写fetcher字段
    }}
  >
    {/* 该层级组件使用customFetch作为fetcher,依然继承上层的errorRetryCount、revalidateOnFocus配置 */}
    ...
  </SWRConfig>
</SWRConfig>

注意:嵌套配置的合并是深度合并,嵌套对象类型的配置项不会被整体替换,仅对象内同名字段会被覆盖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 18:36:23