所以,我在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感谢您的帮助;