Я попытался изменить addTypeName: false в клиенте Apollo в GraphQL.
apollo.create({
link: httpLinkWithErrorHandling,
cache: new InMemoryCache({ addTypename: false }),
defaultOptions: {
watchQuery: {
fetchPolicy: 'network-only',
errorPolicy: 'all'
}
}
Но он работает и выдает в консоль следующие сообщения
fragmentMatcher.js:26 You're using fragments in your queries, but either don't have the addTypename:true option set in Apollo Client, or you are trying to write a fragment to the store without the __typename.Please turn on the addTypename option and include __typename when writing fragments so that Apollo Clientcan accurately match fragments.
,
Could not find __typename on Fragment PopulatedOutageType
а также
fragmentMatcher.js:28 DEPRECATION WARNING: using fragments without __typename is unsupported behavior and will be removed in future versions of Apollo client. You should fix this and set addTypename to true now.
даже если я изменю false на true new InMemoryCache({ addTypename: true }), мутации начнут давать сбой из-за нежелательного имени типа в мутации
есть ли способ решить эту проблему





Удаление ненужных полей из ответов GraphQL
В теме выше я разместил ответ на эту проблему, пожалуйста, обратитесь к нему
Вероятно, стоит отметить, что это, скорее всего, нарушит кеширование, если вы не внесете коррективы. github.com/apollographql/apollo-client/issues/2881
Этот вопрос был более общим, но привлек больше внимания и имеет более проверенный ответ. stackoverflow.com/questions/47211778/…
Спросили и ответили здесь: Повышение Apollo - __typename в запросе предотвращает новую мутацию. Если вы используете результаты запроса в качестве начального состояния, вам нужно сначала преобразовать его, чтобы удалить поля
__typename(и любые другие поля, которые могут быть недопустимыми полями ввода).