我可以在GraphQL查询中选择变量吗?

我可以在GraphQL查询中选择变量吗?,graphql,react-apollo,gql,hasura,Graphql,React Apollo,Gql,Hasura,我有一个查询,其中包含一个变量$filter,它是一个字符串 仅当用户表示要过滤结果时,此变量才相关。如果用户不进行筛选,我希望返回所有符合条件的结果 有没有办法在这个查询中省略filter变量?我尝试过传递null,但得到了一个错误 const NOTIFY_NEW_PUBLIC_FEELINGS = gql` subscription notifyNewPublicFeelings($page_id: uuid!, $filter: String!) { feelings(

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

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

有没有办法在这个查询中省略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
    }
  }
`;

问题是您已将$filter标记为
String(!表示不可为空)。因此,传递null必然会引起问题。如果您将字符串标记为可空(仅
string
,而不使用
),则可以安全地通过
null