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