vue.js - 智能查询自定义变量名称是否可能?
问题描述
我正在使用Vue
withApollo
来查询GraphQL
我项目中的端点。一切都很好,但我想开始编写通用组件以简化和加快开发。
问题是,在大多数情况下,我使用智能查询系统。例如,我使用:
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
}
}
}
`
所以我group
的 apollo 智能查询中的变量与查询本身具有相同的名称group (id: $id)
。正是这种机制对我试图实现的目标来说非常烦人。有没有办法避免这种默认机制?
例如,我希望能够给出一个通用名称,例如record
, 它将records
用于可能返回多条记录的查询。
有了它,我将能够制作在 或 上运行的通用组件或record
mixin records
。
或者我是否必须将所有查询重命名为,如果出现错误消息进行故障排除record
,records
以后会很烦人?
或者也许还有另一种方法可以实现这一目标,而我没有考虑过?
提前致谢。
解决方案
通过这样做 :
const GROUP_QUERY = gql`
query groupQuery ($id: ID) {
record: group (id: $id) {
id
name
usersCount
userIds {
id
username
}
}
}
`
如果GROUP_QUERY
在多个地方使用 ,则可以在record
名称下访问结果,因为它被定义为 的别名group
。请参阅Aliases的文档。
推荐阅读
- android - 缩小从 ACTION_GET_CONTENT 获取的图像返回 null
- javascript - 范围之和:奇怪的行为
- android - 如何在封闭状态下运行应用程序 Flutter 后台服务?
- javascript - 错误:定义的函数不是函数
- laravel - Laravel Eloquent:获取相关表列的数据和使用条件
- android - Android Studio 3.5.0 上的 Gradle 错误“variant.getMergeResources()”
- c# - 数据库值的减法
- r - X 和 Y 标签未出现在我的 ggplot 上
- mysql - 使用 MYSQL 计算同一列与组中的许多日期之间的时间
- python - Django 通道 JsonWebsocketConsumer self.send_json() 错误