componentWillReceiveProps
是否可以在使用 react-apollo HOC 时以某种方式禁用查询的执行graphql
?为了说明我正在尝试做的事情。
我有一条路线/:albumSlug/photos/:photoId
,它将根据 url 打开带有相册中照片的照片详细信息页面。此页面还将使用 photoId 获取此照片前后的 10 张照片。现在,当用户导航到下一张照片时,我将检查是否预加载了超过 5 张照片,如果是,我将跳过此查询,如果现在我将对fetchMore
照片执行查询并将数据合并在一起。
问题是,如果我使用 graphql HOC,它将为每个componentWillReceiveProps
. 是否有可能以某种方式禁用它?或者任何其他解决方案?
我出来的唯一解决方案是将使用 graphql 返回的组件包装到简单组件,它将处理此跳过状态并skip
在查询选项中使用选项,但不知何故我真的不喜欢这个解决方案。
更新:嗯,这只是想法,但查询看起来像这样:
album(id: $albumId) {
current:photoById(id: $photoId) {
...photo
}
previous: photos(before: $photoId, limit: 10) {
...photo
}
next: photos(after: $photoId, limit: 10) {
...photo
}
}
然后我使用这样的道具映射:
photos: [...album.previous, album.current, ...album.next]
将其转换为我可以在其中找到照片的数组。我也用它来渲染导航,我的想法是使用fetchMore
函数并将其合并到这个页面。不知道会不会好用,我正在尝试。