#node.js #react-redux #react-chartjs-2
#node.js #react-redux #react-chartjs-2
Вопрос:
Я использую react chartjs2 для отображения линейной диаграммы. И данные диаграммы обновляются в useEffect. На диаграмме показаны данные. И все работает. Но я получаю это предупреждение об исчерпании правил deps:
Строка 51: Эффект использования React Hook имеет отсутствующую зависимость: ‘chartData’. Либо включите его, либо удалите массив зависимостей react-hooks / исчерпывающий-deps
Но если я добавлю state chartData, то страница зависнет, потому что я думаю, что это будет бесконечный цикл. Данные могут непрерывно вызываться. Код:
const [chartData, setChartData] = useState({
labels: [],
datasets:[]
});
useEffect(()=>{
let oNewChartData = {...chartData};
oNewChartData.labels = [1,2,3,4,5,6,7];
oNewChartData.datasets = [{
label: 'Week',
borderColor: 'green',
fill: false,
data: {x:[1,2,3,4,5,6,7],y:[0,1,2,3,4,5]}
}
]
setChartData(oNewChartData);
}
},[props]);
Ответ №1:
Да, это связано с тем, что useEffect срабатывает при обновлении chartData, и вы обновляете chartData в своем useEffect, это приведет к бесконечному циклу. Я предполагаю, что у вас есть ESLint, который говорит вам включить это значение в ваш useEffect.
ESLint не знает о бесконечных циклах в react