setState被调用两次,但是仅父函数被调用一次

时间:2018-11-23 17:56:27

标签: javascript reactjs listener onclicklistener

所以,我在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”,两次调用了其父函数

输出:

5326.22
remove
remove

我是新来的对此做出反应的人,所以不确定在组件更新时是否必须清除onClick侦听器...但是id感谢您的帮助;

0 个答案:

没有答案