从可观察对象返回的复杂对象中访问数据
Posted
技术标签:
【中文标题】从可观察对象返回的复杂对象中访问数据【英文标题】:Accessing data from a complex object that is returned by an observable 【发布时间】:2020-03-21 00:08:08 【问题描述】:我有一个 Angular 客户端,它从可观察对象中获取数据(通过 apollo.watchQuery())。
当我记录从 observable 返回的数据时,它的结构恰好是这样的: console.log() output
如何从主“用户”对象访问这些“用户”对象中的每一个?
这就是我最初获取和记录数据的方式:fetching_users
【问题讨论】:
嗨,对不起,我不太明白你的问题:你为什么不遍历你的用户数组?像 res.data.users.map(user => //any treatment here) 之类的东西?或者只是一个愚蠢的(res.data.users的const用户)//这里的任何处理? 感谢@millenion,但是当我尝试访问 res.data.users 时,它说:“错误 TS2339:属性 'users' 在类型 '' 上不存在。”。否则很容易。 【参考方案1】:您可以使用角度函数 forEach 访问每个用户对象,在您的情况下,它将是这样的
this.apollo.watchQuery<any>(...).valueChanges.subscribe(
res=> //res here is Users
res.forEach(
user=>
console.log(user.name);
)
【讨论】:
我认为这肯定可以工作@kenny-samuel,但它会抛出一个错误:“错误 TS2339:'ApolloQueryResult' 类型上不存在属性 'forEach'”。那是什么意思?我是否在迭代未定义的内容? 已解决! Apollo 方法应称为apollo.watchQuery<any>(..);
而不仅仅是 apollo.watchQuery(..);
很好,我也会更新我的答案以供将来参考
非常有用的资源如果你有同样的问题:[Apollo Docs] (apollographql.com/docs/angular/basics/queries)以上是关于从可观察对象返回的复杂对象中访问数据的主要内容,如果未能解决你的问题,请参考以下文章
从可观察到的返回数据的角度 forEach 循环(Firebase 驱动)