我如何有条件地计算本地反应的状态之一?

时间:2020-01-13 00:50:03

标签: javascript reactjs react-native react-native-android

我刚刚开始通过构建测验应用程序来学习React Native。

我在计算以下两件事:

  1. numberOfTry:回答测验的尝试次数。
  2. numberOfCorrectAnswerOnFisrtTry:第一次尝试回答的尝试次数。

不。 1可以。但是第二名杀死了我好几天。我想知道如何在单击按钮时有条件地更改一种状态。


    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 个答案:

答案 0 :(得分:4)

我假设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,
   });
}