react-router 4.x 嵌套路由无法展示

发布于 2022-09-11 16:05:46 字数 1040 浏览 13 评论 0

项目是使用creat-react-app搭建的
我在index.js中配置了HomeAccount 两个子路由,

ReactDOM.render(
  <HashRouter>
    <Switch>
       <Route exact path="/home" component={Home} />
       <Route exact path="/account" component={Account} />
    </Switch>
  </HashRouter>,
document.getElementById('root'));

并且http://localhost:8080/#/home指向了Home这个路由,
Home组件中我又有三个子组件路由,并按照如下配置

//Home.js

<div className="home_main">
    <Switch>
       <Route exact path="/index" component={HomeIndex} />
       <Route path="/order" component={HomeOrder} />
       <Route path="/assets" component={Assets} />
    </Switch>
</div>

现在遇到的问题就是我输入http://localhost:8080/#/home 进入到了Home组件,但是我访问http://localhost:8080/#/home/index 试图访问HomeIndex这个组件,页面一片空白,就像是访问了一个不存在的路由一样

请问在v4版本下,嵌套路由应该怎么写才是正确的?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

乙白 2022-09-18 16:05:46

<Route exact path="/home" component={Home} /> exact这个属性去掉
然后

// Home
<div className="home_main">
    <Switch>
       <Route exact path="/home/index" component={HomeIndex} />
       <Route path="/home/order" component={HomeOrder} />
       <Route path="/home/assets" component={Assets} />
    </Switch>
</div>
妖妓 2022-09-18 16:05:46

1、看官方文档:
https://reacttraining.com/rea...
https://reacttraining.com/rea...

2、
简单点

<Switch>
    <Route
        path="/home"
        component={() => {
            return (
                <React.Fragment>
                   <Route exact path="/home" component={HomeIndex} />
                   <Route path="/order" component={HomeOrder} />
                   <Route path="/assets" component={Assets} />
                </React.Fragment>
            );
        }}
    />
</Switch>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文