Я использую базовую конфигурацию клиента из примера на первой странице 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 и повторный запуск программы приводят к тому, что запрос повторяется, как требуется.