3

我想用来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-depseslint 规则告诉我我useEffect有 2 个依赖项,我应该将它们包含到依赖项数组中(useEffect 的第二个参数)或完全删除数组。第二个选项不合适,因为我不需要在每次渲染时调用这些函数。因此,我需要将它们都包括在内。有一篇关于将函数包含到依赖数组中的文章。那里描述的事情对我来说非常清楚,但我仍然对依赖数组中的 redux 动作创建者以及 react 如何对这些函数进行浅显的比较感到困惑。对我来说,这有点难以理解。解决这种特殊情况的正确方法是什么? 一般而言,在 useEffect 中使用 redux 动作创建者的正确方法是什么?

4

0 回答 0