reactjs - 如何确保我的用户通过 React-Router-Dom 转到特定路径(写在 url 中)而不自动转到默认主页?
问题描述
我目前遇到一个问题,如果用户输入localhost:3000/resume
,它将默认返回localhost:3000
. 当我单击我写的专门导航到简历页面的按钮时,它工作得很好,但我想要它,以便如果他们在 URL 中输入该特定路径,他们应该能够访问该页面而不必从登陆开始页面并导航到那里。这是我的包含路由器的代码
应用程序.js
import React from 'react';
import './App.css';
import LandingPage from './pages/LandingPage/LandingPage';
import {Route,Router, Redirect} from 'react-router-dom';
import history from './history';
import Projects from './pages/Projects/Projects';
import Experiences from './pages/Experiences/Experiences';
import Resume from './pages/Resume/Resume'
function App() {
return (
<div className="App">
<Router history = {history}>
<Route path = "/" component = {LandingPage} exact/>
<Route path = "/projects" component = {Projects} exact/>
<Route path = "/experiences" component = {Experiences} exact/>
<Route path = "/resume" component = {Resume} exact/>
<Redirect to = "/"/>
</Router>
</div>
);
}
export default App;
历史.js
import {createBrowserHistory} from "history";
export default createBrowserHistory()
解决方案
感谢@Shawn_Yap,这是新App.js
代码,以防其他人创建了与我相同的错误。
您需要一个开关,否则它似乎会呈现所有路线,然后重定向回登录页面。这是供进一步参考的文档。Switch 文档 React Router Dom
应用程序.js
import React from 'react';
import './App.css';
import LandingPage from './pages/LandingPage/LandingPage';
import {Route,Router, Switch,Redirect} from 'react-router-dom';
import history from './history';
import Projects from './pages/Projects/Projects';
import Experiences from './pages/Experiences/Experiences';
import Resume from './pages/Resume/Resume'
function App() {
return (
<div className="App">
<Router history = {history}>
<Switch>
<Route path = "/projects" component = {Projects} exact/>
<Route path = "/experiences" component = {Experiences} exact/>
<Route path = "/resume" component = {Resume} exact/>
<Route path = "/" component = {LandingPage} exact/>
<Redirect from="*" to = "/"/>
</Switch>
</Router>
</div>
);
}
export default App;
推荐阅读
- firebase - 将数据从firestore加载到flutter列表中的问题
- java - 如何在打开的 csv 中获取和验证 csv 标头?
- javascript - 如何在tinymce中禁用复制/粘贴
- java - 将 java 命令转换为 maven 配置文件时出现问题
- laravel - Laravel Nova Metric 卡片显示自定义标签
- android - 将数据从子活动 onActivityResult() 发送到父活动 onActivityResult()
- c# - 如何使用 xamarin.ios 创建圆形脉冲动画?
- python - 假设检验的表格设置 - 带有 t 检验和 WMW 检验的交叉表
- wordpress-gutenberg - 我没有在古腾堡块中添加样式表
- angular - 尝试使用已破坏的视图:detectChanges 事件,尽管视图已分离