Реагирует на состояние документов: не вызывайте хуки внутри циклов, условий или вложенных функций.
Хорошо, в следующем коде показан пример для вышеприведенного оператора. У меня была такая же проблема, когда мне нужно было установить состояние внутри цикла, например:
const [someArray, setArray] = useState([]);
someValue.forEach((value, index) => {
setArray([...someArray, value]) //this should be avoided
});
Выше всего этого я добился следующим образом
var temp = [];
var counter = 0;
someValue.forEach((value, index) => {
temp.push(value);
counter++;
if (counter === someValue.length) {
setArray(temp)
}
});
, если вы устанавливаетесостояние внутри цикла, чем каждый раз, когда компонент выполняет рендеринг, в который вы не хотите входить.
Этот код нарушает правила хуков
Нет Ваш код выглядит нормально, так как вы устанавливаете состояние только на основе условия только один раз, когда компонент отображает