Reactjs 如何修复两次单击按钮时的反应状态更新?

Reactjs 如何修复两次单击按钮时的反应状态更新?,reactjs,Reactjs,我正在使用webpack和react。我在应用程序中创建计数增量,但当我单击按钮时,状态未更改,但当我再次单击时,计数增量或您可以说状态已更新。请检查我下面的代码,让我知道我错在哪里 您可以在下面的图片中签入,我单击了两次,但计数为1 import React,{useState}来自“React”; 常数计数=()=>{ let[count,setCount]=useState(0); 函数单击(){ 控制台日志(“单击”); setCount(count++); } 返回( 点击这里 {c

我正在使用webpack和react。我在应用程序中创建计数增量,但当我单击按钮时,状态未更改,但当我再次单击时,计数增量或您可以说状态已更新。请检查我下面的代码,让我知道我错在哪里

您可以在下面的图片中签入,我单击了两次,但计数为1

import React,{useState}来自“React”;
常数计数=()=>{
let[count,setCount]=useState(0);
函数单击(){
控制台日志(“单击”);
setCount(count++);
}
返回(
点击这里
{count}
);
};
导出默认计数;

任何解决方案,谢谢

在React中,状态更新是异步的。
你应该写:

setCount(previousCount => previousCount + 1);

要了解更多信息:

在React中,状态更新是异步的。
你应该写:

setCount(previousCount => previousCount + 1);

要了解更多信息:

计数器+++
是后增量的,它首先使用计数值,然后再加1。因此,第一次单击该按钮时,它会将count设置为
count
,然后向其中添加1。使用增量前的
++count
count+1
而不是
count++

计数器+++
是增量后的,它首先使用计数值,然后加1。因此,第一次单击该按钮时,它会将count设置为
count
,然后向其中添加1。要使用增量前的
++count
count+1
而不是
count++

使用前一状态

 function click() {
    console.log("clicked");
    setCount(prevCount => prevCount+1);
    //or
    //setCount(count+1);
  }
使用以前的状态

 function click() {
    console.log("clicked");
    setCount(prevCount => prevCount+1);
    //or
    //setCount(count+1);
  }

好的,您有三种解决方案之一:

  • 将函数传递到设置的状态:比如
    setCount(prevState=>prevState+1)
  • 改为执行预增量,如:
    setCount(++count)
  • 使用如下增量手动添加:
    setCount(count+1)

您的代码不起作用,因为您使用的是增量后操作,该操作先使用值,然后对其增加1,这导致了您当前面临的困惑。

确定您有三种解决方案之一:

  • 将函数传递到设置的状态:比如
    setCount(prevState=>prevState+1)
  • 改为执行预增量,如:
    setCount(++count)
  • 使用如下增量手动添加:
    setCount(count+1)

您的代码不起作用,因为您使用的是增量后操作,该操作先使用值,然后对其进行增量1,这导致了您当前面临的困惑。

不客气,我们都有过。当我第一次开始与react合作时,这是我存在的痛苦,你是绝对受欢迎的,我们都在那里。当我第一次开始使用react and states时,这是我存在的痛苦。您能否确认一个正确答案,以便人们知道此问题已得到解决。您能否确认一个正确答案,以便人们知道此问题已得到解决。