我有将 Redux 操作传递到 useEffect 的依赖项列表的困境。
例如
import { someReduxAction } from '../actions/greatestPathEverMade'
const mapDispatchToProps = () => ({
someReduxAction
})
const DummyComponent = ({ someReduxAction }) => {
useEffect(() => {
someReduxAction()
}, [someReduxAction])
return ( .... )
}
我 75% 确定 Redux 操作没有更改,所以我可以从 useImpact 的依赖项数组中省略它,但我的问题主要是:Redux 操作是否有可能更改?通常,它们是恒定的,因为基本的 redux 操作将调度类型和有效负载对象。
ESLint exhaustive-deps
规则无法知道该函数是否会更改为不同的引用,因此它始终会告诉您该函数需要添加到依赖项列表中。 唯一的例外是内置的 React 函数,如 useState
setter 或 useReducer
调度,React 确保它们是稳定的引用,并以这种方式硬编码到 ESLint 规则中。