Каков наилучший способ обновить переменную, но избежать ошибки?
Это зависит от множества факторов: иногда использование ссылки (если вы не хотите инициировать обновление), иногда вы просто выводите состояние и нет необходимости в use-effect
(я думаю, что это может быть вашим случаем), в других случаях вам нужно запускать обновление только при изменении определенных значений. Иногда следующее значение зависит от предыдущего, поэтому следует использовать перегрузку функции setState
и избегать передачи предыдущего значения в качестве зависимости ... На эту проблему нет универсального c ответа.
Трудно понять, что происходит в вашем случае, без большего контекста. Тем не менее, я думаю, что у меня есть представление о том, что может происходить ... Это просто выстрел в темноте.
Является ли types
Объектом, который вы определяете внутри функции компонента? Можете ли вы переместить это определение за пределы функции компонента? Потому что, если вы можете сделать это, тогда нет необходимости передавать его как зависимость.
Кроме того, вам действительно нужно использовать useState
и useEffect
для установки values
? Вы действительно должны вызвать другое обновление? ты не можешь просто сделать это?
const values = types[formStep];