Reactjs 如何修复两次单击按钮时的反应状态更新?
我正在使用webpack和react。我在应用程序中创建计数增量,但当我单击按钮时,状态未更改,但当我再次单击时,计数增量或您可以说状态已更新。请检查我下面的代码,让我知道我错在哪里 您可以在下面的图片中签入,我单击了两次,但计数为1Reactjs 如何修复两次单击按钮时的反应状态更新?,reactjs,Reactjs,我正在使用webpack和react。我在应用程序中创建计数增量,但当我单击按钮时,状态未更改,但当我再次单击时,计数增量或您可以说状态已更新。请检查我下面的代码,让我知道我错在哪里 您可以在下面的图片中签入,我单击了两次,但计数为1 import React,{useState}来自“React”; 常数计数=()=>{ let[count,setCount]=useState(0); 函数单击(){ 控制台日志(“单击”); setCount(count++); } 返回( 点击这里 {c
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时,这是我存在的痛苦。您能否确认一个正确答案,以便人们知道此问题已得到解决。您能否确认一个正确答案,以便人们知道此问题已得到解决。