反应-使用Superagent等待请求结束

时间:2018-07-20 09:17:50

标签: reactjs request state wait 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更新时调用渲染。

1 个答案:

答案 0 :(得分:1)

React(... yet)中没有延迟渲染的事情。

您可以做两件事:

  • 将该状态加载到父组件中,仅在有数据时挂载子组件
  • 使图示的组件render()检查是否仍在加载,并显示加载消息,或者如果尚未准备就绪,则返回null