В настоящее время я работаю над некоторыми основными вещами с помощью Angular (5) и GraphQL, и у меня возникают некоторые проблемы с вызовом метода watchQuery. Как только я вызываю метод, мой компонент дает сбой и возвращает меня со следующей ошибкой:
ERROR TypeError: Object(...) is not a function
Я искал в Интернете решение, но не смог найти подходящего. Моя среда содержит следующие библиотеки:
У меня есть sharedModule с некоторыми импортами и ссылкой:
export class SharedModule {
constructor(apollo: Apollo, httpLink: HttpLink) {
apollo.create({
link: httpLink.create({uri: 'baseUri/graphql'}),
cache: new InMemoryCache()
});
}
}
И у меня есть следующий код внутри моего компонента списка:
getMovies() {
this.movies = this.apollo.watchQuery<Query>({ // <= where my error occurs
query: gql`
query {
movies {
id
title
genres
}
}
`
})
.valueChanges
.pipe(map((result) => result.data.movies));
}
полная ошибка содержит следующие строки вплоть до моего кода:
ERROR TypeError: Object(...) is not a function
at new QueryRef (QueryRef.js:6)
at ApolloBase.watchQuery (Apollo.js:30)
at MovieListComponent.getMovies (movie-list.component.ts:37)
at MovieListComponent.ngOnInit (movie-list.component.ts:29)
Если у кого-то есть предложения или вопросы, дайте мне знать.
Спасибо! Уил посмотри на это завтра на работе.
Имел ту же проблему и был понижен до v1.0.1, как было предложено @ user3270598. Это исправило это для нас. Добавлена проблема в репо github.com/apollographql/apollo-angular/issues/651





Вы должны попробовать понизить версию grapqh и graphql-tag
Какие версии вы бы порекомендовали?
Если вы используете Angular 5, это, вероятно, связано с тем, что версии, на которые вы ссылаетесь в своем вопросе, зависят от RxJS 6. У вас есть два решения:
Не пытайтесь перейти на RxJS 6 и оставайтесь на Angular 5, вы столкнетесь с большим количеством проблем.
Проблема возникает из-за несоответствия между RxJS v5 и v6.
Если вы столкнулись с проблемой, мы настоятельно рекомендуем перейти на RxJS 6. Мы выполнили несколько крупных проектов без каких-либо проблем.
Если вы не можете выполнить обновление, придерживайтесь версии 1.0.X apollo-angular.
Вы, может быть, пробовали этот минимальный пример? apollographql.com/docs/angular/basics/queries.html#rxjs Может оттуда взять ...