小编Bre*_*nou的帖子

Apollo 客户端 - 使用 useLazyQuery 获取更多,变量不更新(用于偏移分页)

预期结果: 我们按照 apollo 文档(https://www.apollographql.com/docs/react/pagination/offset-based/)进行了分页实现。使用读取/合并函数 一旦我们调用 fetchMore 函数并手动更新变量,我们期望使用新变量调用读取函数。

Apollo 文档片段

实际结果: 我们无法使分页正常工作,数据已正确获取但未正确显示。显示不良是由于变量未更新造成的。“读取”函数始终接收原始查询的变量。

useEffect(() => {
    if (isDefined(fetchMore)) {
      fetchMore({
        variables: {
          offset:
            currentPage === 1
              ? (currentPage - 1) * total
              : (currentPage - 1) * total + 1,
          first: total,
          searchString: searchString
        }
      })
    } else {
      getData({
        variables: {
          offset: 0,
          first: total,
          searchString: searchString
        }
      })
    }    }, [currentPage, fetchMore, searchString, getData])
Run Code Online (Sandbox Code Playgroud)

我们还尝试手动更新变量,因为我们不使用 useQuery,而是使用 useLazyQuery。

 client
    .watchQuery({
      query: GET_REPORTS,
      variables: {
        offset: 0,
        first: total,
        searchString: searchString
      } …
Run Code Online (Sandbox Code Playgroud)

react-apollo apollo-client

7
推荐指数
1
解决办法
2465
查看次数

标签 统计

apollo-client ×1

react-apollo ×1