Я хочу получить запрос userUnpurchasedCourses после выполнения мутации addCourseToOrder, но не могу этого сделать. После добавления одного класса в заказ он получает запрос userUnpurchasedCourses, но если я снова добавлю курс в заказ, запрос не будет выполняться.
Я попытался выполнить запрос в последующем блоке мутации, а также попробовал запросы на повторную выборку, но проблема с запросом на повторную загрузку заключается в том, что я не могу получить результат запроса.
вот как я определяю мутацию
const Mutation = async (query, variables, refetch) =>
client.mutate({
mutation: gql`
${query}
`,
variables,
refetchQueries: () => [
{
query: gql`
${refetch?refetch:query}
`,
variables
}
]
});
Здесь я использовал мутацию, подобную этой
let res = await Mutation(classes.addCourseToOrder(), {
userId,
id,
orderId,
amount,
})
if (res.data.addCourseToOrder) {
this.props.getUserUnpurChasedCourses({id})
}
getUserUnpurChasedCourses будет отвечать за запуск userUnpurchasedCourses.
Если вам нужна более подробная информация, пожалуйста, дайте мне знать
Заранее спасибо.
не работает, так как я не использую apollo-angular, а также я не включил никаких подписок в свою схему, так что в любом случае это не сработает, но спасибо за ответ, я попытаюсь добавить подписки
Привет @Preston, я не найду результат запроса на повторную загрузку, но я просто найду решение проблемы. спасибо за ваши усилия
Обязательно опубликуйте свое решение! :-)
хорошо, я разместил решение.

Наблюдая за проблемой, я обнаружил, что запрос выполняется каждый раз после мутации, но вместо извлечения данных с сервера (сети) он извлекает данные из кэш-памяти, поэтому даже после проверки вкладки сети в консоли браузера я не получал никакого запроса на это, из-за чего я не мог точно определить проблему, но я получал результат из ранее сохраненного результата, после чего, много погуглив, я обнаружил, что есть способ отключить выборку из кэш-памяти, поэтому я попробовал это снова и снова, пока я не сделаю это.
все, что я сделал, это изменил запрос из этого
export const Query = async (query, variables) =>
client.query({
query: gql`
${query}
`,
variables
});
к этому
export const Query = async (query, variables) =>
client.query({
query: gql`
${query}
`,
variables,
fetchPolicy: 'network-only'
});
Не уверен, что это поможет, но обычно вы подписываетесь в конце мутации. GraphQL использует наблюдаемые объекты.
.subscribe(result => { console.info('result.data in subscribe: ', result.data); ...