【发布时间】:2021-10-21 04:00:05
【问题描述】:
我已经为此苦苦挣扎了一段时间,我有一个包含一些链接的导航页面和一个反应路由器开关,它应该根据 url 更改页面上的内容。问题是当我单击链接时,地址栏中的 URL 会更改为正确的 URL,但内容没有更改。
我只有一个 BrowserRouter 实例,据我所知,该开关在“/”路径上包含“精确”。
为什么会这样?
Index.js:
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';
import {RecoilRoot} from 'recoil';
import 'bootstrap/dist/css/bootstrap.css';
import { BrowserRouter } from 'react-router-dom';
ReactDOM.render(
<React.StrictMode>
<RecoilRoot>
<BrowserRouter>
<App />
</BrowserRouter>
</RecoilRoot>
</React.StrictMode>,
document.getElementById('root')
);
NavBar.js
import React from 'react'
import './NavDesktop.css'
import {useRecoilValue} from 'recoil'
import { configState } from '../atoms';
import {Link} from 'react-router-dom'
function NavDesktop(){
const config = useRecoilValue(configState);
return(
<div className="container-fluid shadow nav-desktop-container">
<div className="row nav-desktop-container-row"><div className="col-auto">{config.site_name ?? "LandKit."}</div><div className="col-auto">
<div className="container nav-items-container">
<div className="row nav-desktop-items-row">
<div className="col-md-auto"><Link to="/recordings">Call Recordings</Link></div>
<div className="col-md-auto"><Link to="/charges">Our Charges</Link></div>
<div className="col-md-auto"><Link to="/support">Support</Link></div>
</div>
</div>
</div>
</div>
</div>
)
}
export default NavDesktop
App.js
import React,{Component} from 'react'
import './App.css';
import InnerPage from './Pages/InnerPage'
import NavMobile from './Components/NavMobile'
import NavDekstop from './Components/NavDesktop'
import Footer from './Components/Footer'
import {BrowserRouter as Switch, Route} from "react-router-dom";
function App() {
return (
<div className="container-fluid main-container">
<div className="row nav-row-main d-flex d-md-none"><NavMobile/></div>
<div className="row nav-row-main d-none d-md-flex"><NavDekstop/></div>
<div className="row inner-row-main flex-grow-1">
<Switch>
<Route exact path="/"><div>home</div></Route>
<Route path="/recordings"><div>recordings</div></Route>
<Route path="/charges"><div>Charges</div></Route>
<Route path="/support"><div>Support</div></Route>
</Switch>
</div>
<div className="row nav-row-main"><Footer/></div>
</div>
);
}
export default App;
【问题讨论】:
-
你还没有用 div 包裹你的费用和支持
-
@Shyam,谢谢,我已经更新了问题,但不幸的是它没有解决问题。
-
import {Switch, Route} from "react-router-dom";你已经在 index.js 中用 browserouter 覆盖了你的应用程序,所以我认为你不需要在 app.js 中再次放置它。另外,switch 与 browserouter 不同。 -
您能否将您的代码移植到说明问题的代码框?
标签: reactjs react-router