javascript – 如何链接到React Router中的嵌套路由
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 如何链接到React Router中的嵌套路由,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2676字,纯文字阅读大概需要4分钟。
内容图文
目前我正在为我的应用程序使用以下代码.
const {
Router,
Route,
IndexRoute,
Redirect,
Link,
IndexLink,
hashHistory
} = ReactRouter
var App = React.createClass({
render : function() {
return (
<div>
<h1>My Application</h1>
<div><Link to="/levelone/1">Go to One</Link></div>
<div><Link to="/levelone/1/leveltwo/5">Go to Three</Link></div>
{this.props.children}
</div>
)
}
})
var Index = React.createClass({
render : function() {
return (
<div>
<h2>This is index route</h2>
</div>
)
}
})
var LevelOne = React.createClass({
render : function() {
return (
<div>
<h2>This is LevelOne</h2>
{this.props.children}
</div>
)
}
})
var LevelTwo = React.createClass({
render : function() {
return (
<div>
<h2>This is LevelTwo</h2>
</div>
)
}
})
var routes= (
<Route path= "/" component={App}>
<IndexRoute component={Index}/>
<Route path="/levelone/:id" component={LevelOne}>
<Route path="/leveltwo/:idd" component={LevelTwo}/>
</Route>
</Route>
)
ReactDOM.render(<Router history={ hashHistory } routes={routes}></Router>, document.getElementById('app'));
<script src="https://unpkg.com/react@15.1.0/dist/react-with-addons.js"></script>
<script src="https://unpkg.com/react-dom@15.1.0/dist/react-dom.js"></script>
<script src="https://npmcdn.com/react-router@3.0.0/umd/ReactRouter.js" charset="utf-8"></script>
<div id="app"><div>
在上面的代码我链接到/ levelone / 1 / leveltwo / 5从组件App无法正常显示错误[react-router]位置“/ levelone / 1 / leveltwo / 5”与任何路由都不匹配.
但是,如果我将链接放在组件LevelOne中,就像在下面的代码片段中一样,链接将指向LevelTwo就像我想要的那样
var LevelOne = React.createClass({
render : function() {
return (
<div>
<h2>This is LevelOne</h2>
<div><Link to="leveltwo/5">Go to LevelTwo</Link></div>
{this.props.children}
</div>
)
}
})
如果我想从最外面的组件链接到LevelTwo,我该怎么办?
解决方法:
LevelOne组件中定义的路径(< Link to =“leveltwo / 5”>转到LevelTwo< / Link>)是此处的问题.您的所有链接都必须使用绝对路径.
引自https://github.com/ReactTraining/react-router/blob/master/docs/API.md#link
道具
至
位置描述符.通常这是一个字符串或对象,具有以下语义:
>如果它是一个字符串,则表示链接到的绝对路径,例如/ users / 123(不支持相对路径).
…
所以你的路径应该是< Link to = {“/ levelone /”this.props.params.id“/ leveltwo / 5”}>去LevelTwo< / Link>代替.
编辑:对不起,现在是凌晨1点,我的阅读能力已经从悬崖上掉下来了.嵌套路由时,在打算实际使用相对路径时不要使用绝对路径时要小心.您的路线定义
< Route path =“/ leveltwo /:idd”component = {LevelTwo} />
应该是:
< Route path =“leveltwo /:idd”component = {LevelTwo} />
< div>< Link to =“leveltwo / 5”>转到LevelTwo< / Link>< / div>的原因工作是因为< Link>只支持绝对路径(见上文)并实际指向/ leveltwo / 5,并且您最初使用绝对路径定义了路径定义.因此,虽然代码运行,但它实际上并没有按照您的预期运行.
内容总结
以上是互联网集市为您收集整理的javascript – 如何链接到React Router中的嵌套路由全部内容,希望文章能够帮你解决javascript – 如何链接到React Router中的嵌套路由所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。