我想像这样命名/嵌套查询变量:
query ($params: {$id: ID!}) {
getUser(id: $params.id) {
email
username
}
}
与变量:
{
"params": {
"id": "42"
}
}
但这不是一个有效的查询。
但是像这样的查询:
query ($id: ID!) {
getUser(id: $id) {
email
username
}
}
与变量:
{
"id": "42"
}
会工作得很好。
我想这样做的原因是自动将查询选项发送到 ApolloReactgraphql
高阶组件,其中的params
prop 应用于来自 react 路由器的包装组件。这个问题本质上与 react router 无关,除了params
prop 是由 react router 应用到组件之外。
ApolloReact 将尝试使用组件中的 props 来自动构建 variables 对象,并且由于id
嵌套在props
其中无法找到它。
id
另一种方法是通过定义一个options
接收ownProps
和返回变量对象的方法来专门定义查找位置,graphql
但如果可能的话,我想避免它。