无法读取未定义的APOLLO GRAPHQL的“ then”属性

时间:2018-12-11 14:54:29

标签: vue.js graphql apollo

我遇到了麻烦,被困住了。我曾经在其他代码上复制了此代码,但是此方法在apollo上不起作用。这是我在vue.js上使用阿波罗的方法。

handleLikePost() {
    const variables = {
        postId: this.postId,
        username: this.user.username
    };
    this.$apollo.mutate({
        mutation: LIKE_POST,
        variables,
        update: (cache, { data: { likePost } }) => {
            const data = cache.readQuery({
                query: GET_POST,
                variables: { postId: this.postId }
            });
            data.getPost.likes += 1;
            cache
                .writeQuery({
                query: GET_POST,
                variables: { postId: this.postId },
                data
            })
                .then(({ data }) => {
                // const updatedUser = {
                    //   ...this.user,
                    //   favorites: data.likePost.favorites
                    // };
                //this.$store.commit("setUser", updatedUser);
                console.log(this.user);
                console.log(data.likePost);
            })
                .catch(err => console.error(err));
        }
    });
}

1 个答案:

答案 0 :(得分:0)

我认为问题在于您没有从中退货;

cache.writeQuery()

这就是为什么.then({data})无法从writeQuery()那里得到东西的原因