Запрос GraphQL успешно выполняется один раз и не запускается снова с использованием Apollo и AWS AppSync - PullRequest
0 голосов
/ 30 апреля 2018

Я использую базовую конфигурацию клиента из примера на первой странице https://github.com/awslabs/aws-mobile-appsync-sdk-js repo:

const client = new AWSAppSyncClient({
  url: appSyncConfig.graphqlEndpoint,
  region: appSyncConfig.region,
  auth: {
    type: appSyncConfig.authenticationType,
    apiKey: appSyncConfig.apiKey,
  }
});

Но без компонента <Rehydrated> и с компонентом Redux <Provider>. Родительский компонент самого высокого уровня упакован так:

<Provider store={store}>
  <ApolloProvider client={client}>
    <App/>
  </ApolloProvider>
</Provider>

Я пытался поменять порядок для Provider и ApolloProvider, но это не изменило результат.

Проблема в том, что запрос выполняется один раз успешно, но не выполняется снова. Журналы AppSync CloudWatch показывают первоначальный успешный запрос, но не показывают дальнейшие попытки запроса Это заставляет меня поверить, что проблема в чем-то на клиенте.

Я установил fetchPolicy в запросе на 'network-only' без результатов:

const mapDataToProps = graphql(GET_ALL_STORIES, {
  name: 'getAllStories',
  options: { fetchPolicy: 'network-only' }
});

Я подтвердил, что именованный запрос "getAllStories" действительно существует в компоненте, проверив компонент в отладчике Chrome. Свойства запроса NetworkStatus и loading остаются на 1 и true все время, и никакого ответа не получено.

В настоящее время я использую следующие версии соответствующих библиотек: aws-appsync: 1.0.17 Аполлон-клиент: 2.2.8 Реакция-Аполлон: 2.1.3 приращение: 3.6.0

Редактировать Дополнительная информация. Это происходит в программе, созданной с помощью Expo. Перезагрузка программы путем встряхивания устройства и выбора «Обновить» приводит к описанному выше поведению. Однако перезапуск Expo и повторный запуск программы приводят к тому, что запрос повторяется, как требуется.

...