Запрос GraphQL извлекает данные только один раз после мутации

Я хочу получить запрос 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.

Если вам нужна более подробная информация, пожалуйста, дайте мне знать

Заранее спасибо.

Не уверен, что это поможет, но обычно вы подписываетесь в конце мутации. GraphQL использует наблюдаемые объекты. .subscribe(result => { console.info('result.data in subscribe: ', result.data); ...

Preston 15.07.2019 17:17

не работает, так как я не использую apollo-angular, а также я не включил никаких подписок в свою схему, так что в любом случае это не сработает, но спасибо за ответ, я попытаюсь добавить подписки

Vinay Sharma 16.07.2019 08:35

Привет @Preston, я не найду результат запроса на повторную загрузку, но я просто найду решение проблемы. спасибо за ваши усилия

Vinay Sharma 16.07.2019 12:11

Обязательно опубликуйте свое решение! :-)

Preston 16.07.2019 18:14

хорошо, я разместил решение.

Vinay Sharma 17.07.2019 09:13
10 вопросов на собеседовании по React js
10 вопросов на собеседовании по React js
Вопрос: Что такое React JS? Каковы преимущества использования React?
1
5
929
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Наблюдая за проблемой, я обнаружил, что запрос выполняется каждый раз после мутации, но вместо извлечения данных с сервера (сети) он извлекает данные из кэш-памяти, поэтому даже после проверки вкладки сети в консоли браузера я не получал никакого запроса на это, из-за чего я не мог точно определить проблему, но я получал результат из ранее сохраненного результата, после чего, много погуглив, я обнаружил, что есть способ отключить выборку из кэш-памяти, поэтому я попробовал это снова и снова, пока я не сделаю это.

все, что я сделал, это изменил запрос из этого

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'
 });

Другие вопросы по теме