【发布时间】:2020-07-04 04:43:19
【问题描述】:
我有两个 graphql 查询,它们返回 field1、field2 或 field1 和 field2。我还有一个布尔标志 field1 和 field2。你能帮我写一个生成三个 qraphql 查询之一的函数吗:
gql
query {
employee {
name
}
};
gql
query {
employee {
surname
}
};
gql
query {
employee {
name
surname
}
}
function Form () {
...
const { data } = useQuery(
GET_NAME // query
);
const onClick = () => {
....
return textInput.current!.value=data.me.name;
将执行查询(可能由useQuery)并返回可能的字符串之一:
name
surname
name + surname
例如:
如果我检查函数将生成并执行查询的名称
query {
employee {
name
}
};
并将返回值 - 约翰
如果我检查姓氏,该函数将生成并执行查询
query {
employee {
surname
}
};
并将返回值 - 康纳
如果我检查姓名和姓氏
query {
employee {
name
surname
}
};
并将返回约翰·康纳。
它是否像 SQL 查询一样工作?
详细说明: 假设我在服务器 {name: John, surname: Connor} 上只有一个对象,没有 id 和其他字段。当我调用 onClick 函数时,客户端应用程序只需要生成并执行一个查询。你能帮忙吗?
例如,如果我使用 SQL DB,我可以连接字符串查询
常量 q =
select ${field}
from employee
其中的字段可以是“name”、“surname”或“name, surname”并生成查询 “从员工中选择姓名” “从员工中选择姓氏” "从员工中选择姓名,姓氏"
此查询将返回“John”、“Connor”或“John Connor”。 graphql 是否可以通过串联或插值的方式生成查询?
【问题讨论】:
-
你能分享你的实际查询和一些代码吗?
-
我还是不明白你想要得到的结果!如果其中一个为 null 或两者都已定义,您想获取名称或用户名吗?
-
@Nux 添加示例
-
所以你想要的是根据某些情况动态传递字段?
-
@Nux 我添加了解释,请帮助我。 graphQL Querry 是 String 类型的变量吗?
标签: javascript graphql