Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么一个状态变量在更新而另一个不在更新?_Javascript_Reactjs_Firebase - Fatal编程技术网

Javascript 为什么一个状态变量在更新而另一个不在更新?

Javascript 为什么一个状态变量在更新而另一个不在更新?,javascript,reactjs,firebase,Javascript,Reactjs,Firebase,我是一个全新的反应者,我认为我做的是正确的。我正在努力为我正在开发的一个琐事游戏记分。当我设置状态时,分数正在更新,但正确回答的数量没有更新。有趣的是,只有当我将站点部署到firebase时才会出现这种情况,在本地提供服务时,它才能正常工作 此功能位于父游戏组件中。this.state.points在递增,this.state.numberCorrect/increct不在递增 childSubmitAnswer(dataFromChild) { if (dataFromChild.corr

我是一个全新的反应者,我认为我做的是正确的。我正在努力为我正在开发的一个琐事游戏记分。当我设置状态时,分数正在更新,但正确回答的数量没有更新。有趣的是,只有当我将站点部署到firebase时才会出现这种情况,在本地提供服务时,它才能正常工作

此功能位于父游戏组件中。this.state.points在递增,this.state.numberCorrect/increct不在递增

childSubmitAnswer(dataFromChild) {
  if (dataFromChild.correct === true) {
    this.setState((prevState) => {
      return {
        numberCorrect: prevState.numberCorrect++,
        points: prevState.points + dataFromChild.points
      }
    });
  } else {
    this.setState((prevState) => {
      return {
        numberIncorrect: prevState.numberIncorrect++,
        points: prevState.points - dataFromChild.points
      }
    });
  }
  console.log(this.state.numberCorrect);
}
这是在显示问题的子组件中调用的函数

handleSubmit(event) {
  event.preventDefault();
  let verification = new AnswerVerification();
  this.answerSubmitted();
  if (verification.verifyAnswer(this.state.submissionValue, this.state.answer)) {
    let data = {
      correct: true,
      points: this.props.points
    }
    this.props.childSubmitAnswer(data);
  } else {
    let data = {
      correct: false,
      points: this.props.points
    }
    this.props.childSubmitAnswer(data);
  }
}

再见,我想问题出在
childSubmitAnswer
函数上。尝试这样修改它:

childSubmitAnswer(dataFromChild) {
  if (dataFromChild.correct === true) {
  this.setState((prevState) => {
  return {
    numberCorrect: prevState.numberCorrect + 1,
    points: prevState.points + dataFromChild.points
  }
});
} else {
  this.setState((prevState) => {
    return {
      numberIncorrect: prevState.numberIncorrect + 1,
      points: prevState.points - dataFromChild.points
    }
  });
}
console.log(this.state.numberCorrect);
}
说明:在Javascript中,在操作数之后使用++时,将在增加操作数之前返回值。例如:

let a = 0;
console.log(a++); // shows 0
console.log(a);   // shows 1

为什么这篇文章被否决了?我很肯定这是正确的解决办法。