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 中的嵌套路由的主要内容,如果未能解决你的问题,请参考以下文章

react-router-relay 的子路由查询错误

无法获取用户 ID 路由参数以在 react-router-relay 上工作

将 react-router 和 react-router-relay 从 v1.x 更新到 v2.x(位置“/”不匹配任何路由)

使用 react-router-relay 访问要在查询中使用的 url 参数

如何将值传递给 react-router-relay 中的根查询

我可以从 Relay 查询结果中提取深度嵌套的节点吗?