1

这些代码在 Angular 5 中可以正常工作,但是在迁移到 Angular 6 时,我收到了错误消息:

错误错误:未捕获(承诺中):TypeError:您在预期流的位置提供了无效对象。您可以提供 Observable、Promise、Array 或 Iterable。TypeError:您在预期流的位置提供了无效对象。您可以提供 Observable、Promise、Array 或 Iterable。at subscribeTo (subscribeTo.js:41) at from (from.js:17) at new QueryRef (QueryRef.js:6) at Apollo.push../node_modules/apollo-angular/Apollo.js.ApolloBase.watchQuery (Apollo .js:29) 在contacts.service.ts:75

这是代码

我真的很感激一些可能会产生此错误的迹象

4

1 回答 1

0

我刚刚遇到了同样的错误。我通过用just替换我的用法来修复它。watchQueryquery

旧代码示例:

return this.apollo
  .watchQuery<GetPartnerCollectionsQuery>({
    query: getPartnerCollectionsQuery,
    variables,
  })
  .valueChanges.pipe(
    map(result => {
      return result.data.getPartnerCollections.collections;
    })
  );

示例新代码:

return this.apollo
  .query<GetPartnerCollectionsQuery>({
    query: getPartnerCollectionsQuery,
    variables,
  })
  .pipe(
    map(result => {
      return result.data.getPartnerCollections.collections;
    })
  );

有点奇怪,watchQuery似乎不再起作用,因为它似乎是“正确”的查询,但希望这只是一个临时错误。

编辑:刚刚找到了这个错误的官方票:

https://github.com/apollographql/apollo-angular/issues/545

编辑2::找到官方解决方案,将您的软件包更新为修复此错误的新版本:

"apollo-angular": "^1.1.0-rc.0",
"apollo-angular-link-http": "^1.1.0-rc.0",
于 2018-05-09T17:32:28.367 回答