在我的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.
  });
}


设置状态是导致重新渲染的原因。

然后,您可以使用状态来确定您是否处于加载状态。如果是这样,向用户展示可能会很好。您还希望在第一个渲染中处理默认数据。检索响应后,将数据设置为第二状态。

10-06 04:26