Как обнулить данные?

При клике на правильный или не правильный ответ меняется цвет:
spoiler
5f3253ddb61fa886318730.png

При переходе на новый уровень цвета остаются на том же месте, это означает, что значения остаются теми же:
spoiler
5f32540641058482618744.png

Если посмотреть на код то сначала userAction(выбор ответа пользователем) равен null, после идёт присвоение значения и основная работа: сравнение с правильным ответом и отображение подходящего цвета:
spoiler
state = {
    userAction: null
  }

onItemClick = (item) => {
    this.state.userAction = Number(item.target.id)
    if (this.state.userAction === answer) {
      item.target.firstChild.className = "li-btn right"
    }
}


При переходе на новый уровень значение userAction снова меняется на null:

nextLevel = () => {
    const { count, userAction, score } = this.state
    if (count < 5 && userAction === this.state.bird.id) {
      this.setState({
        userAction: null,
      })
    }
}


Тогда почему не работает и как можно исправить?
  • Вопрос задан
  • 104 просмотра
Решения вопроса 1
@nickname13384
Почему не написать так?
onItemClick = (item) => {
    const id = Number(item.target.id) // const {id, firstChild } = item.target
    if (id === answer) {
      item.target.firstChild.className = "li-btn right"
    }
}


Зачем нужна проверка при клике на новый уровень?
по идее кнопка "Next Level" должна быть disabled пока не сделали выбор
добавьте в setState обнуления цвета и что там у вас еще должно обнуляться
nextLevel = () => {
      this.setState({
        userAction: null,
      })
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы