Graphql 分页组件没有';不需要初始查询

Graphql 分页组件没有';不需要初始查询,graphql,react-apollo,Graphql,React Apollo,我希望组件从其父组件接收其初始数据,同时仍然能够自己对数据进行分页 例如,考虑 <Parent> //Makes initial GraphQL call <StaticChild/> //Uses initial data and never needs to rerender <DynamicChild/> //Paginates the same query that the Parent made, will need to rerender

我希望组件从其父组件接收其初始数据,同时仍然能够自己对数据进行分页

例如,考虑

<Parent> //Makes initial GraphQL call
  <StaticChild/> //Uses initial data and never needs to rerender
  <DynamicChild/> //Paginates the same query that the Parent made, will need to rerender for every new "page"
</Parent>
//进行初始GraphQL调用
//使用初始数据,无需重新加载
//分页父级所做的相同查询,将需要为每个新“页面”重新排序
会是什么样子?我的理解是,为了访问fetchMore(用于分页),您必须在
graphql
函数(来自react apollo)中包装
。但是
graphql
函数需要初始查询,而
不需要进行初始查询。我的选择似乎是:

a) 让
处理分页。这意味着我必须将shouldComponentUpdate方法添加到

b) 让
进行与
类似的初始查询,并依靠Apollo从Redux存储中提取第二个查询(假设这两个查询不是批处理在一起)

c) 让
进行初始查询,并将fetchMore()回调传递给
。我担心当
使用回调时,它仍然会尝试重新加载


虽然这些解决方案足够简单,但有没有办法让
定义自己的分页查询而不定义自己的初始查询?

作为refetch功能的示例,您可以查看使用GraphQL和apollo client()制作的应用程序的提要页面

对于b)我认为它在第一次进入页面时将获取两次查询。我有一个类似的问题,查询是在父级和子级中获取的


我认为你在c)中是对的,在调用fetchMore之后,它将重新提交父级

你发布的这个解决方案本质上是情况(b)。在第44行,组件被作为初始查询提供给FEED_查询。这就是我想要避免的。我认为它的解决方案c)提要页面使用了获取onload more=>fetchMore函数的组件。来自父母。