Мои мутации правильно работают с Amplify, но не с Apollo.Зачем? - PullRequest
0 голосов
/ 03 октября 2018

Я использую AWS AppSync с Apollo.Пока все хорошо, за исключением того, что я только что понял, что все мои мутации не работают должным образом:

В devtool я могу видеть возвращенные данные, такие как:

{
  "data": {
    "getProduct": {
      "productId": "xxxxxxxxxxxxxxxxxxx",
      "title": "my title",
      "slug": "my slug"
    }
  }
}

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

{
  "data": {
    "getProduct": null
  }
}

Вот что я делаю:

addProduct(variables): Observable<Product> {
  return this.apollo.mutate({
    mutation: gql`
      mutation addProduct($product: AddProductInput) {
        addProduct(product: $product) {
          productId
          title
          slug
        }
      }
    `,
    variables
  }).pipe(
    tap(console.log)
  )
}

Через несколько часов, пытаясь найти решениеЯ пытался заменить Apollo на AWS Amplify, и это сработало, как и ожидалось.

Дело в том, что я не хочу использовать AWS Amplify.Я не могу использовать фрагменты / офлайн / оптимистичный пользовательский интерфейс / fetchPolicy ... и они мне действительно нужны.

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

1 Ответ

0 голосов
/ 03 октября 2018

С помощью Kamil Kisiela мы обнаружили, что он снова работал при добавлении disableOffline: true к AWSAppSyncClient.Поэтому я искал ошибки, которые выглядели так, и нашел это .Затем я обновил aws-appsync до 1.3.3, и он работал все время, даже без disableOffline: true.Ура!

...