2

我使用 withApollo 包装器来调用使用this.props.client.query. 这是我的代码。我有一个方法和一个默认包装器来加载组件安装的启动。我对 graphql 包装器的缓存策略是cache-and-network应用程序可能需要离线工作。但是当我调用someMethod道具时,必须使用新数据进行更新。

someMethod = () => {
this.props.client.query({
  query: ListSubjects,
  options: {
    fetchPolicy: 'network-only',
    cachePolicy: { query: true, data: true },
  },
}).then(({ data }) => {
  console.log(data.listSubjects);
  this.props.client.writeQuery({
    query: ListSubjects,
    data,
  });
});
}
......
export default compose (
withApollo,
graphql(ListSubjects, {
options: {
  fetchPolicy: 'cache-and-network',
},
props: props => ({
  subjectList: props.data.listSubjects ? props.data.listSubjects.items : [],
  isLoading: props.data.loading,
  refreshing: props.data.loading,
  loadingStatus: props.data.loading ? I18n.t('loadingText.subjectDetails') : '',
}),
}),
.....
)(Component);

当我在 aws 上更新数据手册并调用查询时,它返回缓存数据而不是来自服务器的新数据。我想知道我在缓存策略方面出了什么问题。

4

0 回答 0