1

我有一个架构,其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) }?

4

0 回答 0