setState вызывается дважды, но только родительская функция вызывается один раз - PullRequest
0 голосов
/ 23 ноября 2018

Итак, у меня есть эта форма, над которой я работаю в Reactjs.Я задаю пользователям несколько личных вопросов для реализации MFAНо по какой-то причине, когда вызывается следующая кнопка, функция setState вызывается дважды, даже если ее родительский метод вызывается только один раз.

 NextQuestion(e) {
    console.log(e.timeStamp);

    if (this.state.answerIndex === 0) {
      this.setState({answerError: true});
      return;
    }
    if (this.state.currentQuestion >= 2) {
      return;
    }
    this.setState(state => {
      const saveQuestion = state.questionsList[state.questionIndex];
      const newQuestionList = state.questionsList;
      newQuestionList.splice(state.questionIndex, 1);
      console.log('remove');
      const newSavedQuestionsList = state.questionsToSave;
      newSavedQuestionsList.push(saveQuestion);
      return {questionsList: newQuestionList, questionsToSave: newSavedQuestionsList, currentQuestion: state.currentQuestion++};
    });
}

Так что эта функция вызывается, когда пользователь нажимает следующую кнопку,он добавляет выбранный вопрос в список сохраненных вопросов и удаляет его из доступных.однако это фактически вызывает 'setState' дважды и его родительскую функцию дважды

output:

5326.22
remove
remove

Я новичок, чтобы реагировать, поэтому я не уверен, должен ли я очищать слушатель onClick всякий раз, когда компонентобновления ... но я благодарен за помощь;

...