我有以下代码:
ngOnInit() {
this.data = this.apollo.query({ query: ResidentQuery }).subscribe(({data, loading}) => {
this.data = data;
this.loading = loading;
});
if (!this.loading) {
// using this.data
}
}
我希望在(!this.loading)之后处理它们之前加载数据。情况并非如此,因为加载是异步的。在使用数据之前我如何等待数据?
我正在使用apollo客户端进行graphql查询。 ResidentQuery是一个包含graphql查询的字符串。
感谢您的反馈!
答案 0 :(得分:1)
我不确定角度是如何工作的,但我知道它是如何起作用的,我知道两者是相似的。
在做出反应时,您需要使用componentWillReceiveProps()
,例如:
componentWillReceiveProps(newProps){
if(!newProps.query.loading){
this.setState({data: newProps.query.data})
}
}
来自how angular and react lifecycles are similar
的中篇文章基本上,道格将由Angular自动绑定,所以我 假设setter和getter函数将是那个部分,它给出了 你是一种生成复杂状态或变量的方法,就像你可以做的那样 在componentWillReceiveProps()。