在 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
    }
  }
`

有没有一种方法,我不仅可以传递变量 beforeafter,而且可以将一个、另一个、两者都不使用,或两者都传递到单个查询中而不是多次查询?

是的,您只需将参数设为可选即可。 String! 处的感叹号要求参数是字符串而不是空值。因此,通过删除它,您可以将单个查询编写为

const getAllStops = gql`
  query trafficStops($after: String, $before: String)  {
    trafficStops(after: $after, before: $before) {
      id
      date
    }
  }
`