问题描述
我的平面清单上有这个道具:
onRefresh={() => {
setIsRefreshing(true);
refetch(
{ categoriesCount: 4,categoriesCursor: '' },{
fetchPolicy: 'network-only',onComplete: () => {
setIsRefreshing(false);
},}
);
}}
这是我初始化分页的方式:
const { data,loadNext,isLoadingNext,hasNext,refetch } = usePaginationFragment<
CategoriesPaginationQuery,Categories_viewer$key
>(
graphql`
fragment Categories_viewer on Viewer
@argumentDefinitions(
categoriesCount: { type: "Int",defaultValue: 4 }
categoriesCursor: { type: "String",defaultValue: "" }
)
@refetchable(queryName: "CategoriesPaginationQuery") {
categories(first: $categoriesCount,after: $categoriesCursor)
@connection(key: "Categories_viewer_categories",filters: []) {
pageInfo {
startCursor
endCursor
hasNextPage
hasPreviousPage
}
edges {
cursor
node {
id
pk
name
}
}
}
}
`,viewer
);
这是警告:
警告:中继:在光标之后出现意外``,必须从中获取边 列表的末尾(YXJyYXljb25uZWN0aW9uOjc=)。
你在argumentDefinitions上看到categoriesCount的默认值是4,categoriesCursor是“”,我认为relay认为我在重用已经获取的变量,但我想做的是让分页“忘记它的当前边缘”然后去回到开始时拉刷新?
解决方法
要重新获取分页容器,请使用 refetchConnection
。