Я использую оболочку Apollo для вызова запроса, используя this.props.client.query
.Это мой код.У меня есть метод и оболочка по умолчанию для загрузки запуска при монтировании компонента.Моя политика кэширования для графической оболочки 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 и вызываю запрос, он возвращает кэшированные данные, а не новые данные с сервера.Мне нравится знать, где я ошибся в отношении политики кэширования.