graphql - 在 React Apollo 中动态选择查询变量
问题描述
我希望能够动态选择我在 GraphQL 中使用的查询变量。
例如,需要三个单独的查询似乎有点多余:
const getAllStops = gql`
query trafficStops {
trafficStops {
id
date
}
}
`
const getStopsAfter = gql`
query trafficStops($after: String!) {
trafficStops(after: $after) {
id
date
}
}
`
const getStopsBefore = gql`
query trafficStops($before: String!) {
trafficStops(before: $before) {
id
date
}
}
`
有没有一种方法可以让我不仅传递变量before
,或者after
我是否想将一个、另一个、不使用或两者都使用到单个查询中,而不是使用多个查询?
解决方案
是的,你只需要让你的论点成为可选的。感叹号 atString!
要求参数是字符串而不是空值。因此,通过删除它,您可以将单个查询编写为
const getAllStops = gql`
query trafficStops($after: String, $before: String) {
trafficStops(after: $after, before: $before) {
id
date
}
}
`
推荐阅读
- c# - GMail API 快速入门 c# 失败 HttpListener 异常
- php - PDO PostgreSQL 在 Windows 上使用 MAMP 出现“找不到驱动程序”错误
- kubernetes - 在 Kubernetes 中,如何确保一个 pod 只服务一个连接
- c# - 列表列表 lambda
- python - 尝试从列表的第一个值计算列表中的差异
- c++ - Boost Spirit,获取语义动作内部的迭代器
- haskell - `Alt` 类型类的函子分布规律是微不足道的吗?
- jquery - 将 html 元素从变量保存到 sessionStorage 并检索它 - jQuery
- opencv - 如何在字符垂直(而不是沿对角线)放置的图像中裁剪字符补丁
- python-3.x - Python事件调度程序在特定时间后仅运行一次