#javascript #reactjs #react-hooks #state
#javascript #reactjs #реагирующие хуки #состояние
Вопрос:
Я должен проверить, является ли значение объекта пустым и setstate, но проблема в том, что мои данные являются объектом, и я просматриваю их для проверки, является ли значение false или true. Я знаю, что я не могу установить состояние внутри карты, но не могу найти хороший способ сделать это. Я использую хуки
Комментарии:
1. Какую переменную с отслеживанием состояния вам нужно обновить?
2. const [send, setSend] = useState(true); Я хочу сохранить логическое значение внутри переменной ex. send, если контрольное значение равно false, установите значение отправки в false, если не true
Ответ №1:
Чтобы настроить свой код, просто добавьте setSend(isAllowed)
after . Но было бы более уместно использовать .some
:
setSend(
Object.values(data).some(
dataItem => dataItem.items.some(
item => item.check === false
)
)
);
Комментарии:
1. Я думаю
Object.values(data)
, что это был бы массив объектов с ключомitems
, не так ли?2. да, Object.values(data) возвращает массив моих элементов
3. это не работает. Необработанное отклонение (ошибка): слишком много повторных рендерингов. React ограничивает количество отображений, чтобы предотвратить бесконечный цикл.
4. @Narine Можете ли вы опубликовать полный код? Когда вы хотите
send
, чтобы переменная обновлялась после монтирования компонента, или вы просто хотите, чтобы она была установлена один раз?5. Я поместил его внутри нажатия кнопки, теперь он не рендерится повторно, но его состояние не меняется, теперь у меня есть 3 false, что означает, что 3items.check имеет значение true, 2 true, но оно всегда остается верным. Я хочу сказать, что если одно из значений item.check равно false, установите значение false