【问题标题】:Keep two values in sync when data changes数据更改时保持两个值同步
【发布时间】:2017-04-29 06:15:12
【问题描述】:

我有两个变量 goalsDatagoals 可以在初始加载时正常工作,但我想让 goalgoalsData 保持同步,这样如果 goalsData 发生变化,该变化将持续存在goals我怎么能做到这一点?

ngOnInit() {
    this.goalsData = this.apollo.watchQuery({ query: GoalQuery, forceFetch: true });
    this.goals = this.goalsData.map(({data}) => data.allGoals);

    console.log(this.goals);
  }

【问题讨论】:

  • 您可以使用Subject

标签: angular rxjs apollo-server


【解决方案1】:

我没有使用 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-12
    • 1970-01-01
    • 2015-09-25
    • 2018-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多