当使用react-apollo HOC componentWillReceiveProps
时,是否有可能以某种方式禁用graphql
中的查询执行?为了说明我正在尝试做什么。
我有路线/:albumSlug/photos/:photoId
,会根据网址打开相册中的照片详细信息页面。此页面还将使用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
函数并将其合并到此页面。不知道它是否会起作用我正在试验一下。
答案 0 :(得分:0)
使用Apollo 1.0 RC,您可以使用FetchPolicy。