Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.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 警报未在react js中显示更新的状态?_Javascript_Reactjs - Fatal编程技术网

Javascript 警报未在react js中显示更新的状态?

Javascript 警报未在react js中显示更新的状态?,javascript,reactjs,Javascript,Reactjs,我正在开发一个应用程序,其中有一个表单,用户在文本字段中输入一个值,然后在单击submit按钮时将该值传递给子组件。输入框中的每次更改都会设置要传递给子变量(var1)的变量的状态,因此每次更改都会将更改后的值传递给子变量。为了避免这种情况,我声明了另外一个变量(finalVar1),并仅在单击submit按钮并传递finalVar1时才将其状态设置为var1的状态。但是,当我在设置状态后尝试发出警报(finalVar1)时,即使var1未设置,它也始终为空。 这是我的密码 类父级扩展组件{ 建

我正在开发一个应用程序,其中有一个表单,用户在文本字段中输入一个值,然后在单击submit按钮时将该值传递给子组件。输入框中的每次更改都会设置要传递给子变量(var1)的变量的状态,因此每次更改都会将更改后的值传递给子变量。为了避免这种情况,我声明了另外一个变量(finalVar1),并仅在单击submit按钮并传递finalVar1时才将其状态设置为var1的状态。但是,当我在设置状态后尝试发出警报(finalVar1)时,即使var1未设置,它也始终为空。 这是我的密码

类父级扩展组件{
建造师(道具){
超级(道具);
this.state={var1:,finalVar1::};
this.setVar1=this.setVar1.bind(this)
} 
setVar1(e){
this.setState({var1:e.target.value});
}
submitClick(){
this.setState({finalVar1:this.state.var1});
警报(this.state.var1+“”+this.state.finalVar1)//var1不为空,finalVar1为空
}
render(){
返回(
提交
);
}
}

在react中,状态更新是异步的,这意味着在设置下一个值之后,尝试console.log或警告下一个值不起作用。基于类的组件的setState函数允许在状态更新后保证调用第二个参数

submitClick(){
  this.setState(
    { finalVar1: this.state.var1 },
    () => alert(this.state.var1 + " " + this.state.finalVar1)
  );
}

在react中,状态更新是异步的,这意味着在设置下一个值后尝试console.log或警告该值不起作用。基于类的组件的setState函数允许在状态更新后保证调用第二个参数

submitClick(){
  this.setState(
    { finalVar1: this.state.var1 },
    () => alert(this.state.var1 + " " + this.state.finalVar1)
  );
}
setState
是同步的,它将回调作为第二个参数。我们可以使用setState回调来保持
状态处理
接近set设置。当调用此回调时,this.state是更新状态

submitClick(){
这是我的国家({
最终结果ar1:this.state.var1
},()=>(警报(this.state.var1+“”+this.state.finalVar1));
}
setState
是同步的,它将回调作为第二个参数。我们可以使用setState回调来保持
状态处理
接近set设置。当调用此回调时,this.state是更新状态

submitClick(){
这是我的国家({
最终结果ar1:this.state.var1
},()=>(警报(this.state.var1+“”+this.state.finalVar1));
}

在SETTAE中传递callvack。this.setstate(statework,()=>alert('hello'))

在setstae中传递callvack。this.setstate(statework,()=>alert('hello'))