【问题标题】:Can I make variables optional in a GraphQL query?我可以在 GraphQL 查询中将变量设为可选吗?
【发布时间】:2021-04-08 15:19:48
【问题描述】:

我有一个查询,其中包含一个变量 $filter,它是一个字符串。

仅当用户表示他们想要过滤结果时,此变量才相关。如果用户不过滤,我希望返回所有符合条件的结果。

有没有办法在这个查询中省略过滤器变量?我尝试传递 null 并收到错误。

const NOTIFY_NEW_PUBLIC_FEELINGS = gql`
  subscription notifyNewPublicFeelings($page_id: uuid!, $filter: String!) {
    feelings(
      where: { is_public: { _eq: true }, page_id: {_eq: $page_id}, feeling: {_eq: $filter} }
      limit: 1
      order_by: { created_at: desc }
    ) {
      id
      created_at
    }
  }
`;

【问题讨论】:

    标签: graphql react-apollo gql hasura


    【解决方案1】:

    问题在于您已将 $filter 标记为 String!(!表示不可为空)。因此,传递 null 必然会导致问题。如果将字符串标记为可为空(仅String,不带!),则可以安全地传递null

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-31
      • 2014-01-02
      • 2021-04-20
      • 2017-09-26
      • 1970-01-01
      • 2020-05-21
      • 1970-01-01
      • 2023-03-24
      相关资源
      最近更新 更多