我有两个变量goalsData
和goals
,它们可以在初始加载时正常运行,但我希望goal
与goalsData
保持同步,这样如果有变化在goalsData
上,此更改会持续到goals
我将如何实现此目标?
ngOnInit() {
this.goalsData = this.apollo.watchQuery({ query: GoalQuery, forceFetch: true });
this.goals = this.goalsData.map(({data}) => data.allGoals);
console.log(this.goals);
}
答案 0 :(得分:0)
我还没有使用过Apollo,但是watchQuery正在返回一个Observable。这意味着您必须订阅它才能获得更改。
ngOnInit() {
this.goalsData = this.apollo.watchQuery({ query: GoalQuery, forceFetch: true });
this.goalsData
.map({data}=>data.allGoals)
.subscribe((goals)=>{
this.goals = goals;
console.log(this.goals);
},(err)=>{
console.error(err);
},()=>{
console.log('finished');
});
}
假设apollo将发出目标数据,这将继续更新this.goals