Я практикую React с использованием хуков и контекста, работая над простым приложением Quiz. Если ответ правильный, оценка должна увеличиться до 1.
const { qa, questionNumber } = useContext(GlobalContext);
const [score, setScore] = useState(0);
const answerOnClick = (e) => {
const correct = qa[questionNumber].correct_answer === e ? true : false;
if (correct) {
setScore(() => score++);
}
};
Но я получаю эту ошибку в строке setScore(() => score++);
:
TypeError: присвоение постоянной переменной
Я также пробовал if (correct) { score++; setScore(() => score); }
и setScore(() => ++score)
, все еще не работает.
Но когда я пробую setScore(() => score + 1);
, теперь он увеличивается!
Я узнал, что оператор Increment является допустимым оператором JS. Разве score++
и score + 1
не эквивалентны? А почему score
рассматривать как постоянную переменную? Это изменчиво, правда? Я все еще начинающий разработчик. Может кто-нибудь объяснить, что здесь происходит? Спасибо.