繁体   English   中英

Graphql可选操作变量

[英]Graphql optional operation variables

我正在尝试使用可选的过滤器参数编写一个简单的查询

例如

const query = gql`query FilteredPeople($email: String) {
  people(email: $email) {
    fullName
    email
  }
}`;

我不断

"Network error: The inline argument "email" is expected as a variable but was not provided."

它使我认为它在服务器端,但是我的模式非常简单

const RootQuery = `
    type RootQuery {
      people(email: String): [Person]
    }
`;

查看graphql规范以指定某些内容是否可选,您可以使用! 如您所见,电子邮件不是必需的。

注意我正在使用apollo客户端/服务器和react-apollo。 我的版本

server
    "graphql": "^0.7.2",
    "graphql-server-express": "^0.4.3",

client
    "apollo-client": "0.5.0",
    "graphql-tag": "0.1.15",
    "react-apollo": "0.5.16",

我想念什么吗? 我以为我已修复它,但是它停止工作了,所以我想没有。

尽管看起来String可以为空,但实际上是您决定完全不传递任何内容,例如:

const query = gql`query {
  people {
    fullName
    email
  }
}`;

但是,如果确实像在问题中那样使用pass参数,则必须定义该变量。

希望有帮助!

经过进一步调查,似乎这是预期的行为。

http://facebook.github.io/graphql/#sec-All-Variables-Used

定义操作时必须使用操作变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM