【发布时间】:2017-02-19 00:43:33
【问题描述】:
我想像这样命名/嵌套查询变量:
query ($params: {$id: ID!}) {
getUser(id: $params.id) {
email
username
}
}
使用变量:
{
"params": {
"id": "42"
}
}
但这不是一个有效的查询。
但是这样的查询:
query ($id: ID!) {
getUser(id: $id) {
email
username
}
}
使用变量:
{
"id": "42"
}
会正常工作的。
我想这样做的原因是自动将 query options 发送到 ApolloReact graphql 高阶组件中,其中 params 道具应用于来自反应路由器的包装组件。除了params prop 是由react router 应用到组件之外,这个问题本质上与react router 无关。
ApolloReact 会尝试使用组件中的 props 来自动构建 variables 对象,但由于 id 嵌套在 props 中,它无法找到它。
另一种方法是专门定义在哪里可以找到id,方法是定义一个options 方法,该方法接收ownProps 并返回graphql 中的变量对象,但我想尽可能避免它。
【问题讨论】:
标签: graphql apollo-server apollostack