我目前使用apollo graphql客户端从后端获取所有数据,我的react应用程序有很多页面需要获取分页列表,所以我依赖fetchMore
api中的updateQuery
函数来处理分页。我创建了一个helper函数,您可以在其中传递useQuery钩子结果,该钩子将处理fetchMore/updateQuery的东西,这样它就可以将下一页结果追加到现有列表中。这使得将来当我们想要对列出的数据进行更多查询时,更容易使用和添加新的分页列表。www.example.comhttps://www.apollographql.com/docs/react/v2/data/pagination/#offset-based
const fetchNextPage = React.useCallback((variables: <GenericType>) => {
...
// fetch the next page:
fetchMore({
variables: {
...variables,
},
updateQuery: (prev, { fetchMoreResult }) => {
prev.concat(fetchMoreResult);
}),
...
return fetchNextPage // exported out for consumption
然而,查看文档和在线建议,似乎在updateQuery
被弃用之后,继续进行分页的唯一方法将是定义一个字段策略并使用InMemoryCache中的merge
函数。www.example.comhttps://www.apollographql.com/docs/react/pagination/core-api/#defining-a-field-policy
虽然我可以做到这一点,但更新列表项的每个现有查询所需的工作量(更不用说添加新列表查询所需的样板代码)是相当乏味和不必要的。是否有可能定义一种通用的方式来执行这些fetchMore分页,而不必为我们关心的每个类型制定字段策略?
先谢了!
1条答案
按热度按时间gab6jxml1#
也许它能帮助一些人
删除关于传递options.updateQuery函数给fetchMore的冗长的反对警告。
将支持更新查询