我正在尝试有效地做这样的事情
`query GetAllUsers($fields: [String]) {
users {
...$fields
}
}`
然后我的客户(当前为Apollo进行响应)在变量部分的字段数组中传递。目标是能够为我想要返回的字段传递一个数组,并将其插值到适当的graphql查询。当前,这会在$ fields返回GraphQL语法错误(期望{却看到$)。这有可能吗?我是用错误的方式来处理这个问题吗?
我考虑过的另一个选择是调用JavaScript函数并将结果传递给query(),其中该函数将执行以下操作:
buildQuery(fields) {
return gql`
query {
users {
${fields}
}
}`
}
但是,这似乎是一个不必要的解决方法。
答案 0 :(得分:1)
评论摘要:
非标准要求要求解决方法;)
您可以使用片段(用于预定义的字段集),但是它们可能不会随便散布(字段级别)。
变量绝对不是用于查询定义的(而是用于查询中使用的变量的)。
丹尼尔(Daniel)的建议:gql-query-builder
它表明graphQL社区很棒,并且有很多人在处理所有可能的用例……就足以找到解决方案或提出SO了;)