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
如果它没有准备好。
在 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()
检查它是否仍在加载并显示加载消息或 returnnull
如果它没有准备好。