在 Apollo 中删除突变后如何重定向?
Posted
技术标签:
【中文标题】在 Apollo 中删除突变后如何重定向?【英文标题】:How to redirect after a deleting mutation in Apollo? 【发布时间】:2018-03-17 12:59:19 【问题描述】:删除帖子后,我想更新缓存并重定向到帖子索引页面。
deletePost()
this.$apollo.mutate(
mutation: DELETE_POST,
variables:
postId: this.postId
,
update: (cache, data: deletePost ) =>
const query =
query: GET_PAGINATED_POSTS,
variables:
page: 0,
pageSize: 10
,
;
const data = cache.readQuery( ...query );
data.postsPage = data.postsPage.filter(post => post._id != this.postId)
cache.writeQuery( ...query, data )
)
// redirect
this.$router.push( name: 'IndexPosts' )
上述方法可行,但由于我没有执行optimisticResponse
,因此在显示索引页的时间和发生缓存更新的时间之间会有一点延迟。我该如何解决这个问题?我试图做一个optimisticResponse
,但我不知道如何在不进行其他查询的情况下获取分页帖子列表。
【问题讨论】:
【参考方案1】:this.$apollo.mutate(...)
返回一个承诺。
尝试类似:
this.$apollo.mutate(...)
.then(( data: deletePost ) =>
this.$router.push( name: 'IndexPosts' )
)
【讨论】:
以上是关于在 Apollo 中删除突变后如何重定向?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Apollo 和 React 捕获身份验证失败后如何正确重定向
何时以及如何使用 Apollo 客户端和 React 路由器进行重定向