我在建立应用程式时遇到这个问题。有人知道怎么了吗?
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 (....)
};
最佳答案
您的挂钩取决于在挂钩外部声明的函数connectar
,但该函数在渲染过程内部。在每个渲染器上都会对其进行重新制造。因此,React将其视为不稳定的依赖项。您可以在组件外部使用该函数,但是由于该函数本身使用状态挂钩并依赖于道具,因此请将其移到效果挂钩中。
useEffect(() => {
async function conectar() {
const resposta = await ConexaoGraficoEquivalenteNovo(props);
setEquivalenteNovos(resposta[0]);
setData(resposta[1]);
}
conectar();
}, [props]);