首页 > 解决方案 > Apollo Client fetchMore 获取基于游标的分页的上一页

问题描述

我知道要通过基于光标的分页获取下一页,如果查询是产品,则需要举例:

 products(first:12, after: endCursor,)

获取结束光标后的前 n 个边。

要获得上一页,您需要:

 products(last:12, before: startCursor,)

获取开始光标之前的最后 n 个数据。

我在使用 apollo 客户端时遇到的问题是,当我使用查询和 fetchMore 或重新获取它时,它会保留该查询中的第一个变量。

 const { loading, error, data, fetchMore, networkStatus } = useQuery(PRODUCTS,{
        variables: { first: 12, after: null },
        notifyOnNetworkStatusChange: true,
    });

当我得到上一页时:

await fetchMore({
        variables: {
            before: pageInfo.startCursor,
            last:12
        }
    });

然后在我得到一个查询:

variables: {
        before: pageInfo.startCursor,
        last:12,
        first:12
    }

它返回一个无效页面。

我的问题是如果我执行上一页查询,如何删除“第一个”变量。

标签: paginationgraphqlapollo-clientreact-apollo

解决方案


推荐阅读