【发布时间】:2019-06-22 22:58:43
【问题描述】:
如何在 react 的事件处理程序中使用 async/await?
我了解以下代码有误,因为我正在访问 this.state 以获取客户代码。
<button onClick={handleClick}>Get Customer</button>
async handleClick() {
let customerCode = this.state.customerCode;
let customer = await this.service.getCustomer(customerCode);
this.setState({ customer });
}
也许应该是这样的,但我认为这行不通:
handleClick() {
this.setState(async (prevState) => {
let customerCode = prevState.customerCode;
let customer = await this.service.getCustomer(customerCode);
return { ...prevState, customer };
});
}
【问题讨论】:
-
这两种方法对我来说很有意义并且效果很好,你有什么错误吗? this.service.getCustomer(customerCode) 是否返回 Promise?
-
第一个sn-p有什么问题?
-
Janathas,我认为 react 不支持 setState() 中的异步回调函数。
标签: javascript reactjs async-await