在我的componentWillMount函数中,我有一个asycn函数getResults,可从服务器获取数据。我想在初始加载时将响应从getResults传递到相同的组件,但是我注意到在等待数据从getResults返回之前,我的组件已呈现。如何使组件在呈现之前等待响应?我正在使用Redux处理状态。
async componentWillMount() {
const response = await getResults(this.props.category)
}
最佳答案
异步/等待只会使您的代码看起来是同步的。
async componentWillMount() {
const response = await getResults(this.props.category)
this.setState({
// use response to set your state.
});
}
设置状态是导致重新渲染的原因。
然后,您可以使用状态来确定您是否处于加载状态。如果是这样,向用户展示可能会很好。您还希望在第一个渲染中处理默认数据。检索响应后,将数据设置为第二状态。