加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

reactjs – 在react-router v4中嵌套路由

发布时间:2020-12-15 05:05:17 所属栏目:百科 来源:网络整理
导读:我已经在我的应用程序中将react路由器升级到版本4.但现在我收到了错误 Warning: You should not use Route component and Route children in the same route; Route children will be ignored 这个路由有什么问题? import { Switch,BrowserRouter as Router
我已经在我的应用程序中将react路由器升级到版本4.但现在我收到了错误
Warning: You should not use <Route component> and <Route children> in the same route; <Route children> will be ignored

这个路由有什么问题?

import {
    Switch,BrowserRouter as Router,Route,IndexRoute,Redirect,browserHistory
} from 'react-router-dom'   

render((
    <Router history={ browserHistory }>
        <Switch>
            <Route path='/' component={ Main }>
                <IndexRoute component={ Search } />
                <Route path='cars/:id' component={ Cars } />
                <Route path='vegetables/:id' component={ Vegetables } />
            </Route>
            <Redirect from='*' to='/' />
        </Switch>
    </Router>
),document.getElementById('main'))
IndexRoute和browserHistory在最新版本中不可用,路由也不接受带有v4的子路由,而是可以在组件中指定路由本身
import {
    Switch,Redirect
} from 'react-router-dom'   

render((
    <Router>
        <Switch>
            <Route exact path='/' component={ Main }/>

            <Redirect from='*' to='/' />
        </Switch>
    </Router>
),document.getElementById('main'))

然后在主要组件中

render() {
     const {match} = this.props;
     return (
        <div>
           {/* other things*/}
           <Route exact path="/" component={ Search } />
           <Route path={`${match.path}cars/:id`} component={ Cars } />
         </div>
    )

}

同样在汽车组件中

你将会有

render() {
     const {match} = this.props;
     return (
        <div>
           {/* other things*/}
           <Route path={`${match.path}/vegetables/:id`} component={ Vegetables } />
        </div>
    )

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读