react-router-relay 中的嵌套路由
Posted
技术标签:
【中文标题】react-router-relay 中的嵌套路由【英文标题】:Nested Routes in react-router-relay 【发布时间】:2016-01-30 13:21:46 【问题描述】:我在使用 react-router-relay 和嵌套路由时遇到了一些问题。
我的路由器设置如下:
<Route path='/' component=App>
<IndexRoute component=EventList/>
<Route path="/events/:eventId" component=EventLayout queries=eventQueries>
<IndexRoute component=EventDetails queries=eventQueries/>
<Route path="details" component=EventDetails queries=eventQueries/>
<Route path="sessions" component=Sessions queries=eventQueries >
<Route path=":sessionId" component=SessionEditor queries=eventQueries/>
</Route>
</Route>
<Route path="*" component=require('../components/NotFound.jsx')/>
</Route>
route code here
当我到达/events/:eventId/sessions/:sessionId
时,我的组件根本没有被渲染。
我可以看到从服务器返回的该组件的 graphql 片段,但我没有渲染任何组件。
我已经发布了一些 code here 。如果有人可以看看,我将永远感激不尽。
【问题讨论】:
我说得更远了。我发现我必须在某个地方实际渲染孩子!大声笑但是,当我渲染它们时,我得到一个graphql错误allsFromGraphQL(): Expected a declared value for variable, $sessionId.
。我可以在 params 中看到 sessionId,它没有被分配给 props。
解决方案是使用通用的node query 而不是嵌套的资源查询。我不是这个的超级粉丝。我不在乎我的网址中丑陋的 globalId。
【参考方案1】:
答案很简单。我不需要节点查询。我需要在initialVariables
中声明我的sessionId
变量。
如果其他人需要示例,代码将保留。
【讨论】:
48 小时后,您现在可以接受自己的答案了! ***.com/help/self-answer以上是关于react-router-relay 中的嵌套路由的主要内容,如果未能解决你的问题,请参考以下文章
无法获取用户 ID 路由参数以在 react-router-relay 上工作
将 react-router 和 react-router-relay 从 v1.x 更新到 v2.x(位置“/”不匹配任何路由)
使用 react-router-relay 访问要在查询中使用的 url 参数