reactjs - 反应路由器链接更改网址但不是组件
问题描述
当我在导航栏组件上使用链接时,它会更改 url 但不会更改组件,但是当我重新加载时它会更改组件,当我将链接放在主 app.js 中时,它会完美路由
应用程序.js
import './App.css';
import Navbar from './Navbar/Navbar'
import About from './About/About'
import { Route, Link, BrowserRouter as Router ,Switch} from 'react-router-dom'
function App() {
return (
<div>
<Navbar/>
<Router>
<Link to="/about">about</Link>
<Switch>
<Route exact path="/about">
<About/>
</Route>
</Switch>
</Router>
</div>
);
}
export default App;
导航栏.js
import React from 'react'
import './Navbar.css'
import { Link, Router, BrowserRouter} from 'react-router-dom';
function Navbar() {
return (
<div>
<nav className="navbar">
<div>
<h1 className="nav_text">ExportGrains</h1>
</div>
<ul className="nav_ul">
<BrowserRouter>
<Link to="/about">about</Link>
<li id="nav_li">HOME</li>
<li id="nav_li">PRODUCTS</li>
<li id="nav_li">ABOUT</li>
<li id="nav_li">CONTACT</li>
</BrowserRouter>
</ul>
</nav>
</div>
)
}
export default Navbar
about.js
import React from 'react'
function About() {
return (
<div>
<h1>about page</h1>
</div>
)
}
export default About;
如果你能帮助我,那就太好了
解决方案
您应该为所有路线使用一个Router
。问题是导航栏正在使用不同的路由器,而您的其他组件在另一个路由器内。因此,删除导航栏中的路由器并在您的应用程序组件中使用单个路由器。
您也可以添加Navbar
为默认路由并将其放在末尾,switch
以便在上述路由均不匹配时匹配。
function App() {
return (
<Router>
<Switch>
<Route path="/about">
<About />
</Route>
<Route path="/">
<Navbar />
</Route>
</Switch>
</Router>
);
}
Switch 渲染第一个孩子
<Route>
或<Redirect>
与该位置匹配的孩子。
function Navbar() {
return (
<div>
<nav className="navbar">
<div>
<h1 className="nav_text">ExportGrains</h1>
</div>
<ul className="nav_ul">
<Link to="/about">about</Link>
<li id="nav_li">HOME</li>
<li id="nav_li">PRODUCTS</li>
<li id="nav_li">ABOUT</li>
<li id="nav_li">CONTACT</li>
</ul>
</nav>
</div>
);
}
推荐阅读
- oracle - Oracle Apex:上传向导 -> 将 Apex_Collections 错误表导出到 CSV 文件会阻止页面的其余部分呈现
- ios - “使用 Apple 登录”是否允许应用向后兼容 iOS 12 及更低版本?
- php - Wordpress 一页网站使用 wp_is_mobile() 加载缓慢
- c# - 如何在 Unity 中使用力来校正角加速度
- gitlab - 托管 Gitlab:在 ~/public 页面上编辑预设文本
- typescript - 访问包含函数的初始化内部的类型属性
- php - Laravel 通过具有价值的中间表关联 2 个模型
- python - 如何返回每个字段/列只有一个值的结构化数组?
- algorithm - 以最少的分裂量在汽车之间分配人群的有效算法
- python - Pandas groupby 按特定标签获取总行数的百分比