Javascript 此.setState忽略

Javascript 此.setState忽略,javascript,reactjs,Javascript,Reactjs,我的项目的一个功能有问题。我有这个密码 async handleSubmit(e) { e.preventDefault(); await this.setState({ errors: { name: !this.state.values.name ? 'Enter name' : null, tel: !this.state.values.tel ? 'Enter phon

我的项目的一个功能有问题。我有这个密码

async handleSubmit(e) {
        e.preventDefault();
        await this.setState({
            errors: {
                name: !this.state.values.name ? 'Enter name' : null,
                tel: !this.state.values.tel ? 'Enter phone number' : null
        }
        });
        if (!this.state.errors.name && !this.state.errors.tel) {
            this.props.createUser([this.state.values.name, this.state.values.tel]);
        }
    }

这个代码在第一次点击按钮时忽略设置状态。如何修复它?

这种行为的原因是
setState
没有同步工作<代码>设置状态操作是异步的,并且为提高性能而成批执行。这在
setState
的文档中有说明。您不能使用
wait
,因为
setState
不会返回承诺

setState
接受回调作为第二个参数,该参数在执行状态更改后立即运行

handleSubmit(e){
e、 预防默认值();
这是我的国家({
错误:{
名称:!this.state.values.name?“输入名称”:null,
电话:!this.state.values.tel?“输入电话号码”:null
}
}, () => {
if(!this.state.errors.name&!this.state.errors.tel){
this.props.createUser([this.state.values.name,this.state.values.tel]);
});
}
}

想知道你为什么在这里等待你的
设置状态?如果您正在等待状态更新,那么使用第二个参数setState或函数状态更新可能是更好的选择?