【发布时间】:2021-02-18 03:30:47
【问题描述】:
我有以下 GraphQL 查询(使用 Apollo Client JS):
query GetUsers($searchFilter: String) {
users(
first: 10,
filter: { search: $searchFilter }
) {
nodes {
id
name
}
}
}
当我传入 $searchFilter 参数时,这很有效。但是,我希望这个$searchFilter 参数是可选的。所以当它是null 时,它不会应用过滤器。
这看起来很简单,但 API 要求 search 不可为空。所以不允许传入filter: { search: null }。
我想实现以下目标:
query GetUsers($searchFilter: String) {
users(
first: 10,
filter: $searchFilter = null ? null : { search: $searchFilter }
) {
nodes {
id
name
}
}
}
如何有条件地包含 filter 参数?
【问题讨论】:
-
只为
filter变量传递(整个“早先编写/准备”)值(未定义)...在graphql 中不允许逻辑(没有指令,恕我直言,在这种情况下不适合) -
@xadm 的语法是什么?
-
从 server/api [此突变] 规范中读取
filterarg 类型,传递对象 -
query GetUsers($filter: SomeFilterInputType) { users( first: 10, filter: $filter ) {...,通过filter: { search: 'sth'} -
@xadm 这行得通,谢谢!如果你把它放在一个答案中,我会接受它
标签: javascript graphql apollo