Как мне условно сосчитать одно из состояний в реакции родного? - PullRequest
2 голосов
/ 13 января 2020

Я только начал изучать React Native, создав приложение для викторины.

Я считаю следующие две вещи;

  1. numberOfTry: количество попыток ответить на вопросы.
  2. numberOfCorrectAnswerOnFisrtTry: количество попыток ответить с первой попытки.

Нет. 1 в порядке. Но № 2 убивает меня на несколько дней. Я хотел бы знать, как условно изменить одно из состояний, когда я нажимаю кнопку.


    import React, {Component} from 'react';
    import { View, Text, Button } from 'react-native';

    class Quiz extends Component {

        state = {
            quiz_position: 10,
            numberOfTry: 0,
            numberOfCorrectAnserOnFirstTry: 0,
            isFirstTry: true
        }

        updateCount = () => {
            this.setState({
                if (isFirstTry = true) {
                    numberOfCorrectAnserOnFirstTry: numberOfCorrectAnserOnFirstTry +1
                }
                numberOfTry: this.state.numberOfTry+1,
                isFirstTry: false,
              });
        }

        render () {

            return (
                 
                     You tried {this.state.numberOfTry +1 } times.
                     Correct {this.state.numberOfCorrectAnserOnFirstTry} times
                    
                    
                
            )
        }
    }

    export default Quiz

1 Ответ

4 голосов
/ 13 января 2020

Полагаю, this.state.quiz_position - это индекс, указывающий текущий вопрос, чем вам не нужен флаг isFirstTry в состоянии.

updateCount = () => {
    const { numberOfCorrectAnserOnFirstTry, numberOfTry, quiz_position } = this.state;
    const isFirstTry = quiz_position === 0;

    this.setState({
        numberOfCorrectAnserOnFirstTry: isFirstTry? numberOfCorrectAnserOnFirstTry + 1 : numberOfCorrectAnserOnFirstTry
        numberOfTry: numberOfTry + 1,
   });
}
...