useEffect挂钩,如何使用道具,但不要对其进行更新

时间:2019-08-10 14:46:48

标签: javascript reactjs react-hooks use-effect

我正在使用useEffect挂钩来挂载组件时触发一些操作。

代码如下:

  useEffect(() => {
    onChange(
      bar1 ? graphData.displayedItems[bar1.value] : null,
      bar2 ? graphData.displayedItems[bar2.value] : null,
      by ? byOptions[by.value] : null
    )
  }, [])

此代码可以正常工作,但我得到警告:

  

第54行:React Hook useEffect缺少依赖项:“ bar1”,“ bar2”,“ by”,“ byOptions”和“ graphData.displayedItems”。要么包含它们,要么删除依赖项数组react-hooks / exhaustive-deps

我不想将它们添加到依赖项数组中,因为这样,它将在每次更新这些道具之一时运行。而且我只想在组件安装后运行一次。

有没有一种方法可以消除警告,而不必将其添加到依赖项数组中?

我知道此警告可以被ESLint配置覆盖。但是我不想要那个。我想要适当的解决方案。如果React添加了此警告,则必须是对此的解决方案。

我正在学习使用钩子。这有效吗?在这种情况下,我应该使用componentDidUpdate吗?

0 个答案:

没有答案