预期结果: 我们按照 apollo 文档(https://www.apollographql.com/docs/react/pagination/offset-based/)进行了分页实现。使用读取/合并函数 一旦我们调用 fetchMore 函数并手动更新变量,我们期望使用新变量调用读取函数。
实际结果: 我们无法使分页正常工作,数据已正确获取但未正确显示。显示不良是由于变量未更新造成的。“读取”函数始终接收原始查询的变量。
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)