2016-11-04 76 views
0

我想写与可选的过滤器一个简单的查询参数Graphql可选操作变量

例如

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", 

我错过了什么吗?我以为我解决了它,但它停止工作,所以我猜不是。

回答

0

虽然它看起来像字符串是空的,它实际上是,如果你决定不以传递任何东西像这样:

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

但是如果你使用传递一个参数像你在做你的问题,那么你必须定义该变量。

希望有帮助!