Reactjs BrowserRouter未重定向到basename(反应路由器-dom@5.1.2)

Reactjs BrowserRouter未重定向到basename(反应路由器-dom@5.1.2),reactjs,react-router-dom,Reactjs,React Router Dom,我正在使用反应路由器-dom@5.1.2 该项目是使用基本的Create React应用程序创建的 我的index.js中有以下代码 <BrowserRouter basename="/login"> <App /> </BrowserRouter> 当我启动开发服务器时,它仍然指向localhost:3000。理想情况下,它应该指向localhost:3000/login不重定向,它只是通知路由器在路由器将读取和修改的URL部分之前有一段URL

我正在使用反应路由器-dom@5.1.2 该项目是使用基本的Create React应用程序创建的

我的index.js中有以下代码

<BrowserRouter basename="/login">
    <App />
</BrowserRouter>

当我启动开发服务器时,它仍然指向
localhost:3000
。理想情况下,它应该指向
localhost:3000/login

不重定向,它只是通知路由器在路由器将读取和修改的URL部分之前有一段URL


在您的路由中,只需在底部添加一个,这样,如果您的其他路由都不匹配,它将带您进入登录页面。假设您没有
/
路线,这将满足您的需要。

我也有
/
路线。但是我需要我的应用程序以
localhost:3000/login
启动。另外,如果我添加
,它会重定向到预期的
/login/login
。这会让事情变得棘手,因为你告诉react router
/
/login
都是有效路径,但当你输入
//code>时,你会得到另一条路径。但这仍然是可能的。我假设您只想在他们尚未登录时将他们发送到
/login
?是的。有点实际上,我刚开始开发我的项目。所以,我现在只检查基本的。我没有为注销用户提供任何逻辑。因此,
/
/login
在我将basename标记为
/login
和route标记为
/
时给出了相同的视图。理想情况下,映射到
/
的视图应仅在路径为
/login
时呈现(如果我是对的)。此外,我收到警告,因为
您试图在URL路径不以basename开头的页面上使用basename。
在这种情况下,您真的不应该设置
basename
。警告是正确的。我应该在我的回答中包括这一点。