4

我想更新或重新获取方法(不是 apollo 对象)中使用的 apollo 查询中的数据。问题是我想在特定事件之后查询和更新该查询,所以我不能在我的代码中直接使用 apollo 对象。

methods: {
    async fetchEvents() {
      const { data } = await this.$apollo.query({
        query: gql`
            query(
              $someThing: Int,
            ) {
                events (
                  someThing: $someThing,
                ) {
                    total
                    items {
                     ...
                    }
                }
            }
        `,
        variables() {
          return {
            ...
          };
        },
      });
      this.data = data;
    },
  },


  watch: {
    'items.view.organizerId': function callback() {
      this.fetchEvents();
    },
    eventsSearchInputVal: function callback() {
      this.fetchEvents();
    },
    'pagination.statusFilter': function callback() {
      this.fetchEvents();
    },
  },

总之,当pagination.statusFiltereventsSearchInputValitems.view.organizerIdwatch发生变化时,查询应该重新获取。在这段代码中,当这些变量发生变化时,什么都不会发生。

4

1 回答 1

1

我不知道为什么,但我已经将variables()方法更改为一个对象并且它得到了修复。所以这段代码现在可以工作了:

methods: {
    async fetchEvents() {
      const { data } = await this.$apollo.query({
        query: gql`
            query(
              $someThing: Int,
            ) {
                events (
                  someThing: $someThing,
                ) {
                    total
                    items {
                     ...
                    }
                }
            }
        `,
        variables: { // this is an object now
            ...
        },
      });
      this.data = data;
    },
  },


  watch: {
    'items.view.organizerId': function callback() {
      this.fetchEvents();
    },
    eventsSearchInputVal: function callback() {
      this.fetchEvents();
    },
    'pagination.statusFilter': function callback() {
      this.fetchEvents();
    },
  },
于 2019-07-25T04:24:15.013 回答