React - 使用 Superagent 等待请求结束

React - wait the end of a request using Superagent

ComponentWillMount 中,我正在使用 Superagent 从 Node.js 中获取数据。

  componentWillMount() {
    request.get("/appData").end((error, response) => {
      if (!error && response) {
        this.setState({ dataJSON: response.body });
      } else {
        console.log("There was an error fetching server", error);
      }
    });
  }

此数据保存在 this.state.dataJSON 中以便在 render() 中呈现它。

问题是 render()setState() 生效之前被调用。 但是一旦 setState() 更新了 dataJSON 的状态,就会第二次调用渲染并渲染数据。

所以我问你一个等待dataJSON更新的解决方案,以便仅在dataJSON更新时调用渲染。

React 中没有延迟渲染这样的东西 (... yet)。

您可以做两件事:

  • 在父组件中加载那个状态,只有当你有数据时才挂载子组件
  • 让插图组件的 render() 检查它是否仍在加载并显示加载消息或 return null 如果它没有准备好。