Как сделать редирект после удаляющей мутации в Apollo?

После удаления сообщения я хочу обновить кеш и перенаправить на страницу индекса публикации.

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, но не знаю, как получить список постраничных сообщений, не выполняя другого запроса.


person nachocab    schedule 05.10.2017    source источник


Ответы (1)


this.$apollo.mutate(...) возвращает обещание.

Попробуйте что-нибудь вроде:

this.$apollo.mutate(...)
  .then(({ data: { deletePost } }) => {
    this.$router.push({ name: 'IndexPosts' })
  })
person Vincent Cantin    schedule 27.04.2018