在 `useEffect` 中出现无限循环,当依赖链源自 v9.x 中不稳定的 `useSelector` 时
作者: PrashanthNesa创建于 2025年8月28日更新于 2026年5月21日
问题的概述:
在 react-redux v7 中,一个安全的钩子使用模式现在在 v9 中导致无限重新渲染循环。该循环发生在一个 useEffect 依赖于一个缓存函数(useCallback)时,而该函数又依赖于一个 useSelector,该函数总是返回一个新的对象/数组引用。react-redux v8+ 中使用 React 18 的 useSyncExternalStore 钩子的架构转换似乎是导致这种新的更严格行为的根本原因。新的更即时的更新机制创建了一个反馈循环,而旧的批量订阅模型则没有。
内容来源: reduxjs/react-redux