我想使用useEffect
来触发2个函数(它们是redux动作的创建者)-挂载组件时一个函数,而另一个挂载时,例如:
// ...
function MyComp(props) {
function handleSelectItem(itemId) {
const data = props.data.filter(/* some filter logic depending on itemId */);
props.selectItem({ itemId, data });
}
useEffect(() => {
handleSelectItem(1);
return props.deselectItem;
}, []);
}
export default connect(null, {selectItem, deselectItem})(MyComp)
它有效,但是react-hooks/exhaustive-deps
eslint规则告诉我我的useEffect
有2个依赖项,我应该将其包含到依赖项数组中(useEffect的第二个参数),或者删除完全排列。第二个选项不合适,因为我不需要在每个渲染器上调用这些函数。因此,我需要将它们都包括在内。 article关于将函数包含到依赖项数组中。上面描述的事情对我来说很清楚,但是我仍然对依赖项数组中的redux动作创建者以及如何对这些功能进行浅表比较感到困惑。对我来说,这有点难以理解。解决这种特殊情况的正确方法是什么?一般来说,在useEffect中使用redux动作创建者的正确方法是什么?