Graphql 如何在Apollo客户端的gql查询中定义类型?

Graphql 如何在Apollo客户端的gql查询中定义类型?,graphql,apollo,apollo-client,Graphql,Apollo,Apollo Client,我的阿波罗服务器有以下定义 input MinMax{ min:Float max:Float } input ScreenerInput{ fy:Int! quarter:Int! ltp:MinMax eps:MinMax pe:MinMax netWorth:MinMax paidUp:MinMax reserve:MinMax netProfit:MinMax } 如何在Apollo客户端中定义MinMax类型,以发送MinMax类型的变量。

我的阿波罗服务器有以下定义

input MinMax{
  min:Float
  max:Float
}
input ScreenerInput{
  fy:Int!
  quarter:Int!
  ltp:MinMax
  eps:MinMax
  pe:MinMax
  netWorth:MinMax
  paidUp:MinMax
  reserve:MinMax
  netProfit:MinMax
}
如何在Apollo客户端中定义
MinMax
类型,以发送
MinMax
类型的变量。到目前为止,我只做标量类型,所以我的查询很简单

我的查询类型是ScreenedCompanies(条件:ScreenerInput!):[ScreenedCompanies]

如果我像下面这样直接查询,它会工作

{
  screeenedCompanies(criteria:{
    fy:2075
    quarter:2
    eps:{
      min:30
      max:40
    }
  }){
    sector
    symbol
  }
}
我想要的是这样的查询,以便可以更改变量

query getScreenedCompanies($criteria:<What type should be here ?>){  

{
  screeenedCompanies(criteria:$criteria){
    sector
    symbol
  }
}
}
我的变量如下所示

query getScreenedCompanies($criteria:ScreenerInput!){  
  screeenedCompanies(criteria:$criteria){
    sector
    symbol
  }
}
{
  "criteria": {
    "fy": 2075
    "quarter": 4
    "ltp": {
      "min": 345
      "max": 400
    }
  }
}
我收到以下错误

  "error": {
    "errors": [
      {
        "message": "Variable \"$criteria\" of required type \"ScreenerInput!\" was not provided."

它的工作方式与
GQL
中的任何标量类型相同。只需使用与服务器上相同的输入名称来定义它们(在您的情况下,如
MinMax
ScreenerInput
)。您不需要在客户端描述其形状,服务器将为您验证:)


别忘了加上感叹号
,如果需要参数。

您好,谢谢您的回答。但我还是不能让它工作。我的
query
类型是
ScreenedCompanies(条件:screeneriput!):[ScreenedCompanies]
。如何从apollo客户端查询此信息。
MinMax
是我的案例不是必填字段,因此没有
标记。但我仍然无法让它工作。您有哪些错误,您使用的是什么查询?您可以更新您的问题以反映这一点。谢谢您的回复。我已经编辑了这个问题。你能检查一下吗?我明白了。那么,您具体看到了什么错误?在查询中,您需要使用与服务器上相同的输入类型:
screeneriput谢谢。现在我想我已经接近正确的方向了,但是仍然得到了上面的错误。我已经编辑了这个问题。你能检查一下吗。