1

我正在使用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>

我试过交换 and 的顺序ProviderApolloProvider但这并没有改变结果。

问题是查询成功运行一次,但不再运行。AppSync 的 CloudWatch 日志显示初始成功查询,但未显示进一步的查询尝试。这使我相信问题出在客户端上。

我已将fetchPolicy查询设置为'network-only'没有结果:

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

通过在 Chrome 调试器中检查组件,我已经确认命名查询“ getAllStories”确实存在于组件上。查询道具NetworkStatusloading属性始终保持不变,1并且true从未收到任何响应。

我目前正在使用以下版本的相关库: aws-appsync: 1.0.17 Apollo-client: 2.2.8 react-Apollo: 2.1.3 redux: 3.6.0

编辑 附加信息。这发生在使用 Expo 创建的 react-native 程序中。通过摇动设备并选择“重新加载”重新加载程序会导致上述行为。但是,重新启动 Expo 并再次运行程序会导致根据需要重新获取查询。

4

0 回答 0