我是React和GraphQL(Apollo)的新手,正在学习堆栈。
我有一个React组件,可以加载一些页面数据,并且页面上有一个“重新加载”按钮。
问题:
- 当我单击“重新加载”按钮时,我想重新获取数据。
- 但是,我找不到从queryObservable中重新获取数据的方法。
- 如何从QueryObservable重新获取数据?反正有调用refetch吗?
我尝试使用reFetchObservableQueries()
,但这会重新加载页面并重新获取所有内容。我可以只重新引用一个可观察对象吗?
这是我的代码:
getPageQueryObservable = (contentId,key,paginated = false) => {
const query = contentId ? TreeQuery : RootLevelQuery;
const defaultVariables = 'Test';
const variablesForPagination = {
paginationLimit: INITIAL_PAGE_SIZE,...defaultVariables
};
return this.props.apolloClient.watchQuery({
query,variables: paginated === true ? variablesForPagination : defaultVariables
});
};
loadPages = async (paginated = false) => {
const { pages: localPages } = this.state;
const { id,key } = this.props;
const queryObservable = this.getPageQueryObservable(
id,paginated
);
// I want to ideally call this stuff again..When "Reload" button is clicked.
this.querySubscription = queryObservable.subscribe({
next: ({ data,loading }) => {
....
});