【发布时间】:2018-01-28 20:21:21
【问题描述】:
React-router-dom / ReactJS 初学者一般在这里。
我有一些可以工作的路由器代码,我认为可以稍微清理一下,但到目前为止,这样做的尝试都失败了。我在这方面的知识肯定有一些空白。我翻阅了类似的问题,这些问题帮助我扩大了理解,但目前我还没有成功地将这些问题联系起来。
以下代码似乎运行良好,但我对所有管理路由重复的“/admin”前缀感到厌烦。
<BrowserRouter>
<div>
<div className="nav-bar">
<ul>
<li><Link to="/admin">Home</Link></li>
<li><Link to="/admin/content">Content</Link></li>
...
</ul>
</div>
<div className="nav-content">
<Route exact path="/admin" component={AdminHome}/>
<Route path="/admin/content" component={AdminContent}/>
...
</div>
</div>
</BrowserRouter>
但是,将“嵌套”路由移动到子路由元素不起作用。 JavaScript 控制台吐出错误消息“警告:您不应在同一路由中使用 and;将被忽略。”
<Route exact path="/admin" component={AdminHome}>
<Route path="/content" component={AdminContent}/>
...
</Route>
任何建议将不胜感激。我已经阅读了许多 SO 答案,并找到了一些选项,例如,我可以使用 <Route path="/admin/:whatever" render={() => (...)}/>,但目前看来这不是正确的路径。
这样做的原因是,我最终需要在树的下方进一步使用路由参数,例如对于类似于 /admin/content/:content_type/:identifier 的 URI,理想情况下,我的 AdminContent 组件将不知道其父路由匹配。
如果我离基地很远,也请随时告诉我,如果有任何文件你认为会告诉我我很想阅读它。
再次干杯,再次感谢!
【问题讨论】:
-
谢谢!到目前为止,在一个深度层次上做得很好......现在递归地应用这种方法
标签: reactjs react-router react-router-dom