Javascript 使用效果挂钩,如何使用道具,但不要';我不知道他们的最新情况

Javascript 使用效果挂钩,如何使用道具,但不要';我不知道他们的最新情况,javascript,reactjs,react-hooks,use-effect,Javascript,Reactjs,React Hooks,Use Effect,我正在使用一个useffect钩子在组件挂载时触发一些操作 代码如下: useEffect(() => { onChange( bar1 ? graphData.displayedItems[bar1.value] : null, bar2 ? graphData.displayedItems[bar2.value] : null, by ? byOptions[by.value] : null ) }, []) 此代码工作正常

我正在使用一个
useffect
钩子在组件挂载时触发一些操作

代码如下:

  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/dep

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

有没有办法在不将警告添加到依赖项数组的情况下消除警告

我知道ESLint配置可以覆盖此警告。但我不想这样;我想要正确的解决方案。如果React已添加此警告,则必须对此提供解决方案


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

你所说的“用解决方案解决这个问题”是什么意思(似乎不可理解)?在这种情况下,使用
//eslint disable next line[rulename]
似乎完全合适。lint规则是防止常见错误,而不是告诉您如何编码。ignore行告诉lint“我知道我有未标记的依赖项,这是有意的和预期的”。我想你可以用
useMountEffect
或者你自己的类似钩子来隐藏它:
useMountEffect=fn=>useffect(fn,[])你可以这样尝试吗,使用effect(()=>{onChange(bar1?graphData.displayedItems[bar1.value]:null,bar2?graphData.displayedItems[bar2.value]:null,by?byOptions[by.value]:null)}[bar1,bar12])@PeterMortensen对不起,was
必须
edited@AkhilAravind我试过了,但是,每次更改时它都会进入。您所说的“通过解决此问题而失败”是什么意思(似乎不可理解)?在这种情况下,使用
//eslint disable next line[rulename]
似乎完全合适。lint规则是防止常见错误,而不是告诉您如何编码。ignore行告诉lint“我知道我有未标记的依赖项,这是有意的和预期的”。我想你可以用
useMountEffect
或者你自己的类似钩子来隐藏它:
useMountEffect=fn=>useffect(fn,[])你可以这样尝试吗,使用effect(()=>{onChange(bar1?graphData.displayedItems[bar1.value]:null,bar2?graphData.displayedItems[bar2.value]:null,by?byOptions[by.value]:null)}[bar1,bar12])@PeterMortensen对不起,was
必须
edited@AkhilAravind我试过了,但每次变化时,它都会进入