小编dnt*_*ury的帖子

如何在react-router-dom@v6中使用私有路由

我想将私有路由与react-router-dom v6一起使用,同时我尝试应用身份验证条件。

在 App.js 中

<Route path='/dashboard' element= { <PrivateRoute><Abc /></PrivateRoute>}/>
Run Code Online (Sandbox Code Playgroud)

在组件 .js 中

<Routes> <Route {...rest} render={props => !isAuthenticated && !loading ? (<Navigate to='/login' />) : (<Component {...props} />)} /></Routes>
Run Code Online (Sandbox Code Playgroud)
  • 当路线不在 <Routes> 内部时,会出现错误:

错误: <Route> 只能用作 <Routes> 元素的子元素,不能直接渲染。请将您的内容封装在 <Routes> 中

  • 当它位于 <Routes> 内部时,它会给出错误:

错误:[Abc] 不是 <Route> 组件。的所有子组件必须是 <Route> 或 <React.Fragment>

请帮我解决这种情况吗?或者有什么建议。

尝试过此操作,但在两种情况下均出现上述错误之一

<Route path='/dashboard' element= {<PrivateRoute> <Dashboard />
         </PrivateRoute>}/>
Run Code Online (Sandbox Code Playgroud)

`<PrivateRoute path='/dashboard' element= { <Dashboard />}/>`
Run Code Online (Sandbox Code Playgroud)

PIC代码完整

reactjs react-router-dom

20
推荐指数
2
解决办法
5万
查看次数

标签 统计

react-router-dom ×1

reactjs ×1