React Hook useEffect缺少依赖项

时间:2019-06-10 14:04:06

标签: javascript reactjs typescript eslint react-hooks

我在构建应用程序时遇到此问题。有人知道怎么了吗?

  

React Hook useEffect缺少依赖项:“ conectar”。要么包含它,要么删除依赖项数组react-hooks / exhaustive-deps

const GraficoEquivalenteNovo = props => {
  const [equivalenteNovos, setEquivalenteNovos] = useState([]);
  const [data, setData] = useState([]);
  async function conectar() {
    const resposta = await ConexaoGraficoEquivalenteNovo(props);
    setEquivalenteNovos(resposta[0]);
    setData(resposta[1]);
  }
  useEffect(() => {
    conectar();
  }, [props]);

  return (....)
};

1 个答案:

答案 0 :(得分:0)

您的钩子取决于函数connectar,该函数在钩子外部声明,但在呈现过程内部。在每个渲染器上都会对其进行重新制造。因此,React将其视为不稳定的依赖项。您可以在组件外部使用该函数,但是由于该函数本身使用状态挂钩并依赖于道具,因此请将其移到效果挂钩中。

useEffect(() => {
   async function conectar() { 
    const resposta = await ConexaoGraficoEquivalenteNovo(props); 
    setEquivalenteNovos(resposta[0]);
    setData(resposta[1]);
  } 

  conectar();
}, [props]);