我有一个架构,其viewer
最顶层的根元素和所有其他数据都在它之下:viewer
有一个列表users
并提供一个user(id)
. 我的根查询中没有其他元素。
我的根组件定义了以下路线:
<Router history={browserHistory} render={applyRouterMiddleware(useRelay)} environment={Relay.Store}>
<Route path="/" component={App}>
<IndexRoute component={Dashboard} />
<Route path="users" component={UserList} queries={ViewerQueries}>
<Route path=":userId" component={UserDetails} queries={UserQueries} />
</Route>
</Route>
</Router>
这些是查询 - 我不知道如何UserQueries
嵌套,ViewerQueries
或者这是否可能:
const ViewerQueries = {
viewer: () => Relay.QL`query { viewer }`
};
const UserQueries = {
user: () => Relay.QL`query { user(id: $userId) }`
}
我对UserDetails
组件的目标是从
query {
viewer {
user(id: "xyz") {
...
}
}
}
目前,尝试此操作时出现以下错误:
Error: Cannot query field "user" on type "RootQuery".
我如何教 react-router-relay 让它UserDetails
从中获取数据
query { viewer { user(id) } }
而不仅仅是从
query { user(id) }
?