Javascript 单击按钮将状态设置为reactjs中的值,而不是未定义的值
我在一个按钮上编写一个onClick事件来设置Javascript 单击按钮将状态设置为reactjs中的值,而不是未定义的值,javascript,reactjs,Javascript,Reactjs,我在一个按钮上编写一个onClick事件来设置值:0,但在第一次单击时,它给出了“未定义”的值 我已在构造函数中将value的状态设置为null 处理函数代码 这是我的点击事件按钮 <Button className="robot-control-button" onClick={this.handleSit}> 我尝试过使用e.preventdefault(e),但它抛出了一个错误 提前感谢您的帮助您需要在回调中编写console,因为setState需要一些时间来更新值 t
值:0
,但在第一次单击时,它给出了“未定义”的值
我已在构造函数中将value
的状态设置为null
处理函数代码
这是我的点击事件按钮
<Button className="robot-control-button" onClick={this.handleSit}>
我尝试过使用e.preventdefault(e)
,但它抛出了一个错误
提前感谢您的帮助您需要在回调中编写console,因为setState需要一些时间来更新值
this.setState({
robotButtons: { value: 0, eventTime: Date.now() }
},function(){
console.log(this.state.robotButtons);
});
您需要在回调中写入控制台,因为setState需要一些时间来更新值
this.setState({
robotButtons: { value: 0, eventTime: Date.now() }
},function(){
console.log(this.state.robotButtons);
});
e.preventDefault()
由于未传递事件而引发错误
像这样使用
<Button className="robot-control-button" onClick={(e)=>this.handleSit(e)}>
console.log(this.state.robotButtons)代码>这将不起作用,因为setState是一个异步调用。您需要使用回调函数作为第二个参数
代码应该是
this.setState({
robotButtons: { value: 0, eventTime: Date.now() }
}, ()=> {
console.log(this.state.robotButtons);
// call socket connection here
});
e.preventDefault()
由于未传递事件而引发错误
像这样使用
<Button className="robot-control-button" onClick={(e)=>this.handleSit(e)}>
console.log(this.state.robotButtons)代码>这将不起作用,因为setState是一个异步调用。您需要使用回调函数作为第二个参数
代码应该是
this.setState({
robotButtons: { value: 0, eventTime: Date.now() }
}, ()=> {
console.log(this.state.robotButtons);
// call socket connection here
});
请使用jsx和SiteHandler添加完整代码请在使用回调函数后使用jsx和SiteHandler添加完整代码使用回调函数处理这些值效果很好,感谢您提供有关setState异步调用的帮助和信息@kiranvj@Niki状态更新可以是异步的,React可以批处理多个setState()
调用单个更新以提高性能。在使用回调函数后,这里提供了更多信息。它可以很好地处理这些值,感谢您提供有关setState异步调用的帮助和信息@kiranvj@Niki状态更新可以是异步的,React可以将多个setState()
调用批处理到单个更新中以提高性能。更多信息请点击这里