我使用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' }
});
我已确认指定的查询&#34; getAllStories
&#34;通过检查Chrome调试器中的组件确实存在于组件上。查询道具NetworkStatus
和loading
属性始终保持在1
和true
,并且未收到任何回复。
我目前正在使用以下版本的相关库: aws-appsync:1.0.17 Apollo-client:2.2.8 反应 - 阿波罗:2.1.3 redux:3.6.0
修改 附加信息。这是在用Expo创建的反应原生程序中发生的。通过摇动设备并选择&#34; Reload&#34;重新加载程序。导致上述行为。但是,重新启动Expo并再次运行该程序会导致根据需要重新获取查询。