react-hooks / исчерпывающий-deps для данных диаграммы react chartjs 2

#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