javascript - 反应路由器更改网址但不导航到页面
问题描述
我在更改与 react-router-dom 反应的页面时遇到了麻烦。这是我的路由器:-
import { Route, Switch, BrowserRouter } from 'react-router-dom';
import HomePage from '../pages/grocery';
import Profile from '../pages/profile';
import CheckoutPage from '../pages/checkout';
export default function Routes(props) {
return (
<BrowserRouter>
<Switch>
<Route path="/" name="Home" component={HomePage} exact />
<Route path="/profile" name="Profile" component={Profile} />
<Route path="/checkout" name="Checkout" component={CheckoutPage} />
</Switch>
</BrowserRouter>
);
}
这是我的链接标签
<Link to="/profile">Profile</Link>
解决方案
这里的问题是第二个 Route 元素也有一个“/”,第一个将访问以“/”开头的任何元素。如何解决这个问题?使用 Route 您可以将“精确”放在路径之前,因此它只会访问该特定路线,无论之后发生什么。例子:
<Route exact path="/" name="Home" component={HomePage} />
<Route exact path="/profile" name="Profile" component={Profile} />
<Route exact path="/checkout" name="Checkout" component={CheckoutPage} />
这样您就不会在访问其他页面或组件时遇到问题。
推荐阅读
- javascript - 如何使用横向卷轴游戏中的方法从数组中删除元素?
- python - 当内部和内部通信器合并时,使用 Spawn() 从 python 生成的 Fortran 子(或 C++ 或 python)进程不会断开连接
- ruby-on-rails - 使用 ruby 脚本将 git repo 克隆到我的系统后,如何存储文件名?
- three.js - 如何避免 DragControl 和 OrbitControl 在 Three.js 中同时工作?
- java - 在 Spark 中使用 Scala 内核
- go - 如何修复 Golang 中的 %!(EXTRA int=3) 错误?
- java - 无法将我的数据保存到 Android 中的 firebase
- screeps - 如何在 Screeps 的另一个房间建造建筑工地?
- angular - Angular 客户端 - ng 服务于卡住的构建,没有任何可能失败的日志
- linux - Linux终端:安装包时提前传递答案(或参数值)?