首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >请将“路由path="/">”更改为“路由path="*">

请将“路由path="/">”更改为“路由path="*">
EN

Stack Overflow用户
提问于 2022-01-06 07:55:48
回答 1查看 8.7K关注 0票数 9

我在React应用程序中得到了这个警告:

代码语言:javascript
复制
You rendered descendant <Routes (or called `useRoutes()`) at "/" (under <Route path="/">) 
but the parent route path has no trailing "*". This means if you navigate deeper, 
the parent won't match anymore and therefore the child routes will never render.

Please change the parent <Route path="/"> to <Route path="*">.

这是我的代码:

代码语言:javascript
复制
<Router>
        <Routes>
            <Route exact path="/login" element={<Login />} />

            <Route exact path="/" element={<AppBody />} >
              <Route exact path="/add-edit-profile" element={<PageContent />} />
              <Route exact path="/profile-list" element={<ProfileList />} />
              
            </Route>
        </Routes>
    </Router>

AppBody.js:

代码语言:javascript
复制
                <Sidebar/>
                <div className='page-content'>
                    <Header />
                </div>
                
                <Routes>
                    <Route exact path="/add-edit-profile" element={<PageContent />} />
                    <Route exact path="/profile-list" element={<ProfileList />} />
                    
                </Routes>

我需要在代码中修改什么来修正警告?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-06 07:59:47

这意味着AppBody正在呈现更深层次的嵌套路由,并且路径需要指定通配符*字符,以表明它可以匹配更多的泛型/嵌套路径。react-router-dom路由路径总是完全匹配的,因此如果呈现子路由,则路径需要允许它们。将path="/"更改为path="/*"

由于AppBody正在为嵌套的Route组件呈现路由而没有Outlet,所以可以安全地删除它们。

代码语言:javascript
复制
<Router>
  <Routes>
    <Route exact path="/login" element={<Login />} />
    <Route exact path="/*" element={<AppBody />} > />
  </Routes>
</Router>
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70604020

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档