Увеличение баллов в приложении React Quiz (многовариантный балл) - PullRequest
0 голосов
/ 19 июня 2020

Я создаю приложение-викторину в React. js. Вопрос: как увеличить общий балл не только на 1, но и на 3, 4 (каждый ответ должен иметь уникальный балл) банк вопросов: let qBank = [{вопрос: «Я планирую начать вывод денег из моих инвестиций в:», options : [«Менее 3 лет», «3-5 лет», «6-10 лет», «11 лет или более»], ответ: «3-5 лет», id: «0»}, {вопрос: «Как только я начну выводить средства из своих инвестиций, я планирую потратить все средства на:», варианты: [«Менее 2 лет», «2-5 лет», «6-10 лет», «11 лет или подробнее "], ответ:" 2-5 лет ", id:" 1 "}, {вопрос:" Я бы описал свои знания об инвестициях как: ", варианты: [" Нет "," Ограничено "," Хорошо ", "Extensive"], ответ: "None", id: "2"}

et c

и сам код:

nextQuestionHandler = () => {

    const { userAnswer, answers, score } = this.state;
    this.setState({
        currentQuestion: this.state.currentQuestion + 1
    })
    //increment the score if answer is correct
    if (userAnswer === answers) {
        this.setState({
            score: score + 1
        })
    }
}

//update the component
componentDidUpdate(prevProps, prevState) {
    const { currentQuestion } = this.state;
    if (this.state.currentQuestion !== prevState.currentQuestion) {
        this.setState(() => {
            return {
                disabled: true,
                questions: qBank[currentQuestion].question,
                options: qBank[currentQuestion].options,
                answers: qBank[currentQuestion].answer
            };
        })
    }
}

Ответы [ 2 ]

1 голос
/ 19 июня 2020

Вы можете добавить дополнительный атрибут к каждому вопросу.

например.

{ question: "I would describe my knowledge of investments as:", options: ["None", "Limited", "Good", "Extensive"], answer:"None", id:"2", value: 3 } 

, а затем обновите счет:

if (userAnswer === answers) {
        this.setState({
            score: score + currentQuestion.value
    })
}
0 голосов
/ 19 июня 2020

Добавьте атрибут value к вопросам, хранящимся в qBank.

let qBank = [ 
  { 
    question: "I plan to begin withdrawing money from my investments in:", 
    options: ["Less than 3 years", "3-5 years", "6-10 years", "11 years or more"], 
    answer:"3-5 years", 
    value: 1,
    id:"0" 
  }, 
  { 
    question: "Once I begin withdrawing funds from my investments, I plan to spend all of the funds in:", 
    options: ["Less than 2 years", "2-5 years", "6-10 years", "11 years or more"], 
    answer:"2-5 years", 
    value: 2,
    id:"1" 
  }, 
  { question: "I would describe my knowledge of investments as:", 
    options: ["None", "Limited", "Good", "Extensive"], 
    answer:"None", 
    value: 3,
    id:"2" 
  }
]

nextQuestionHandler = () => {

    const { userAnswer, answers, score, value } = this.state;
    this.setState({
        currentQuestion: this.state.currentQuestion + 1
    })
    //increment the score if answer is correct
    if (userAnswer === answers) {
        this.setState({
            score: score + value
        })
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...