在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更新时调用渲染。
答案 0 :(得分:1)
React(... yet)中没有延迟渲染的事情。
您可以做两件事:
render()
检查是否仍在加载,并显示加载消息,或者如果尚未准备就绪,则返回null
。