如何在 graphql 查询中添加动态参数
2019-08-26
2441
我想创建一个 GraphQL 查询,从我的 Vue 应用程序的数据字段中获取一些数据。但是,当我设置变量钩子并尝试使用 this.object 引用我需要的对象时,我得到了无法读取未定义的“xxx”的错误信息。
apollo: {
question: {
query: gql `
query question($id: Int!) {
question(id: $id){
...
}
}
`, variables: { id: this.presentQuestionId}
}
},
Uncaught TypeError: Cannot read property 'presentQuestionId' of undefined is the error message that keeps on coming up.
2个回答
variables
选项应该是一个返回对象的函数,例如:
variables(){
return{
id: this.presentQuestionId
}
}
Boussadjra Brahim
2019-08-26
在纯 JS 中我有时会使用这个技巧:
const opts = {foo: 1, bar: 2}
const q = gql`
query Query {
getSomething(
par1: ${opts.foo}
${!!opts.bar ? `, par2: ${opts.bar}` : ''}
) {
id
name
}
}
`
如果 par2 定义了它会添加到查询中。
Aleksandr Chernyi
2022-08-17