Данные нулевые, НО я вижу ответ как в /grahpql, так и в сети.
ЧТО ТАКОЕ ЗАПРОС:
query GetProductById($product_id: Int!) {
getProductById(product_id: $product_id) {
id
product_id
name
product_type
create_time
update_time
sizes
click_url
price
discount_price
coupon_code
sale_date
sku
colors
in_stock
regions {
...domestic
...international
}
}
}
Обновлено: ОБНОВЛЕНИЕ: СУЖИЛ ЭТО ДО ЭТОГО :::
regions {
...domestic
...international
}
Я ДУМАЮ, ЭТО ПРОБЛЕМА.. НЕТ?
import { IntrospectionFragmentMatcher } from 'apollo-cache-inmemory';
const fragmentMatcher = new IntrospectionFragmentMatcher({
introspectionQueryResultData: {
__schema: {
types: [
{
kind: 'INTERFACE',
name: 'Regions',
possibleTypes: [
{
name: 'domestic'
},
{
name: 'international'
}
]
}
]
}
}
});
export default fragmentMatcher;
import fragmentMatcher from './RegionFragmentMatcher';
const cache = new InMemoryCache();
const apolloClient = new ApolloClient({
fragmentMatcher,
cache,
link: new HttpLink({
uri: `${config.url}/graphql`,
credentials: 'include'
}),
resolvers: Resolvers(cache),
addTypename: true,
dataIdFromObject,
introspection: true
});
export default apolloClient;
Updated для включения запроса
Хорошо, я начал соединять некоторые ключи запроса, и в какой-то момент это сработало. ТАК, кажется, есть что-то, что забивает его. НО ПОЧЕМУ в одном случае работает, в другом нет....? очень странно. Итак, я удалил примерно половину ключей запроса... Я верну их и пройдусь по одному..
Пожалуйста, посмотрите мой последний комментарий, возможно, вы можете мне помочь.
В консоли отображается какое-либо предупреждение или ошибка?
invariant.esm.js:34 Вы используете простой (эвристический) механизм сопоставления фрагментов, но ваши запросы содержат типы объединения или интерфейса. Клиент Apollo не сможет точно отображать фрагменты. Чтобы устранить эту ошибку, используйте IntrospectionFragmentMatcher, как описано в документации: apollographql.com/docs/react/advanced/… AND.. this: invariant.esm.js:34 ВНИМАНИЕ: выполняется эвристическое сопоставление фрагментов! ----- НО, я использую один.
ТАКЖЕ, я закончил тем, что удалил фрагменты из «регионов», и это сработало.. ТАК, да, я думаю, как я использую FragmentMatcher.. вы видите что-нибудь, что торчит?
Вы экспортируете переменную fragmentMatcher в качестве экспорта по умолчанию? Я не вижу этого в коде, который вы вставили.
да. Я забыл вырезать/вставить, но это там. Я добавил это.


FragmentMatcher следует передавать конструктору InMemoryCache, а не конструктору ApolloClient:
const cache = new InMemoryCache({ fragmentMatcher });
const client = new ApolloClient({
cache,
link: new HttpLink(),
});
БИНГО!!! Спасибо, бро!! Вот и все.. Не знаю, как я это пропустил. Я просто предположил, что это что-то более сложное... лол. Еще раз спасибо!!!!!
Какой запрос?