React Hook useEffect 缺少依赖项

IT技术 javascript reactjs typescript eslint react-hooks
2021-05-08 07:09:17

我在构建我的应用程序时遇到了这个问题。有谁知道出了什么问题?

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个回答

您的钩子取决于在钩子connectar外部声明的函数,但在渲染过程内部。它在每次渲染时重新制造。因此,React 将其视为易变的依赖项。您可以在组件外部使用该函数,但由于该函数本身使用状态挂钩并依赖于props,请将其移至效果挂钩中。

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

  conectar();
}, [props]);