"Нарушение инварианта" после вызова readQuery с использованием apollo angular
Я просто тестирую простой случай, когда я могу добавить кошек и показать детали кошек. Но я получаю эту ошибкуbundle.esm.js:805 Invariant Violation: Can't find field color on object {
"id": "5cf74600ed38a91e472e0e20",
"name": "Rose",
"breed": "Italian",
"__typename": "Cat"
}
когда я пытаюсь обновить кеш после добавления нового кота
this.apollo.mutate<CreateCatMutationResponse>({
mutation: CREATE_CAT_MUTATION,
variables: {
name: this.name,
breed: this.breed,
color: this.color
},
// awaitRefetchQueries: false,
update: (store, {data: {createCat}}) => {
// Read the data from our cache for this query.
const data: any = store.readQuery({query: cats, variables: {id: createCat.id}});
// Add our comment from the mutation to the end.
if (data) {
data.cats.push(createCat);
}
// Write our data back to the cache.
store.writeQuery({query: cats, data});
},
}`
Так как на странице, которую я пытаюсь добавить, новая кошка показывает только 2 свойства, то есть имя и породу, а не цвет:
this.allCat = this.apollo.watchQuery<Query>({
query: gql
запрос котов {котов {
id
name
breed
}
} ,
fetchPolicy: 'cache-and-network'
})
.valueChanges
.pipe(
map(result => result.data.cats)
);
}
Любая идея, как я могу избавиться от этой проблемы без использования запросов на повторную проверку?