0

我的平面清单上有这个道具:

 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 是“”,我认为中继认为我正在重用已经获取的变量,但我想要做的是让分页“忘记它的当前边缘”并像开始拉刷新?

4

1 回答 1

0

要重新获取分页容器,请使用refetchConnection.

于 2021-06-24T03:05:43.360 回答