智能查询自定义变量名称可能吗?

问题描述 投票:0回答:1

我正在与Vue一起使用Apollo,以便查询我项目中的GraphQL端点。一切都很好,但是我想开始对通用组件进行编程以简化和加快开发。

在大多数情况下,我使用的是Smart Query系统。例如,我使用:

  apollo: {
    group: {
      query: GROUP_QUERY,
      variables () { return { id: this.groupId } },
      skip () { return this.groupId === undefined },
      result ({ data }) {
        this.form.name = data.group.name
      }
    }
  }

带有GROUP_QUERY即:

const GROUP_QUERY = gql`
  query groupQuery ($id: ID) {
    group (id: $id) {
      id
      name
      usersCount
      userIds {
        id
        username
      }
    }
  }
`

因此我的Apollo智能查询中的group变量与查询本身group (id: $id)的名称相同。对于我尝试实现的目标,正是这种机制很烦人。有没有办法避免这种默认机制?

例如,我希望能够提供一个通用名称,例如record,对于可能返回多个记录的查询,它将是records

这样,我将能够制作可在recordrecords上运行的通用组件或混合器。

或者我是否将我的所有查询重命名为recordrecords,如果以后出现错误消息进行故障排除,这会很烦人?

或者也许有另一种方法可以实现这一目标,但我没有考虑过?

提前感谢。

vue.js vue-apollo
1个回答
0
投票
apollo: { record: { query: GROUP_QUERY, variables () { return { id: this.groupId } }, update: (data) => data.group, skip () { return this.groupId === undefined }, result ({ data }) { this.form.name = data.group.name } } }

[您应该注意,Apollo对象将在您的组件中创建一个record变量,并且update语句显示在哪里获取记录的group

© www.soinside.com 2019 - 2024. All rights reserved.