Единственный способ заставить мой код работать - вывести предупреждение. Если я попытаюсь исправить предупреждения, он отправит useEffect в бесконечный цикл. Это потому, что я обновляю состояние в useEffect вот так ...

1
Justin Oberle 10 Фев 2021 в 04:53

2 ответа

Лучший ответ

Один из способов сделать это - использовать функцию обратного вызова в установщике состояния:

useEffect(() => {
  setAllHistoricalData(allHistoricalData => ({
    ...allHistoricalData, 
    newState: newState, 
    keys: devices
  }));
}, [remainderData, setAllHistoricalData, devices])
2
Nick 10 Фев 2021 в 01:59

Попробуйте этот комментарий

    useEffect(() => {
   // other code
   ...

   // eslint-disable-next-line react-hooks/exhaustive-deps
}, []) 
-1
Diego 10 Фев 2021 в 02:02
66129841