在 React Apollo 中动态选择查询变量
Dynamically choose query variables in 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
,而且可以将一个、另一个、两者都不使用,或两者都传递到单个查询中而不是多次查询?
是的,您只需将参数设为可选即可。 String!
处的感叹号要求参数是字符串而不是空值。因此,通过删除它,您可以将单个查询编写为
const getAllStops = gql`
query trafficStops($after: String, $before: String) {
trafficStops(after: $after, before: $before) {
id
date
}
}
`
我希望能够动态选择我在 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
,而且可以将一个、另一个、两者都不使用,或两者都传递到单个查询中而不是多次查询?
是的,您只需将参数设为可选即可。 String!
处的感叹号要求参数是字符串而不是空值。因此,通过删除它,您可以将单个查询编写为
const getAllStops = gql`
query trafficStops($after: String, $before: String) {
trafficStops(after: $after, before: $before) {
id
date
}
}
`