Итак, у меня есть эта форма, над которой я работаю в 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 всякий раз, когда компонентобновления ... но я благодарен за помощь;