#reactjs
#reactjs
Вопрос:
Пытаюсь обновить состояние объектов с помощью перехвата useState, но, похоже, это не работает. Просто интересно, может ли кто-нибудь определить, что я здесь делаю не так:
Это мое useState:
const [selectState, setSelectState] = React.useState({
level1: 0,
level2: 0,
level3: 0,
});
Компонент, в котором я пытаюсь обновить состояние:
<Button
onClick={() => setSelectState({ ...selectState, level: 1 })}
selected={selectState === 1}
text="Blue"
/>
Ответ №1:
Я вижу пару проблем в вашем коде:
-
setSelectState({ ...selectState, level: 1 })
— вы обновляетеlevel
свойство, но оно отсутствует в состоянии. Таким образом, вы добавляете новое свойство в состояние вместо обновления существующего. -
selected={selectState === 1}
—selectedState
это объект. Итак, вы сравниваете число с объектом и из-за строгого оператора равенства (===
) выполняется следующее условие:selectState === 1
никогда не будет вычисляться
true
.