javascript - 我在使用 React 路由器时遇到问题,因为我的 url 在点击它时会得到更新,但页面没有被呈现
问题描述
我遇到了反应路由器的问题,因为我的 url 在单击它时会得到更新,但页面没有被呈现,但是当我在该特定 url 重新加载它时,它会呈现内容,而我希望它尽快呈现我点击链接
这是我的 App.js
import React from 'react';
import Nav from './Nav';
import { BrowserRouter as Router ,Switch, Route} from 'react-router-dom';
import About from './About'
function App() {
return (
<>
<Router>
<Nav/>
<Switch>
<Route exact path='/about' render={About} />
</Switch>
</Router>
</>
);
}
export default App;
这是我的 Nav.js
import React from "react";
import {BrowserRouter as Router , Link } from "react-router-dom";
import './App.css';
function Nav(){
return(
<Router>
<nav>
logo
<Link to="/about">
About
</Link>
<Link to='/shop'>
shop
</Link>
</nav>
</Router>
)
}
export default Nav
这是我的 About.js
import React from "react";
function About(){
return(
<div>
About Page
</div>
)
}
export default About
解决方案
您应该App
使用BrowserRouter
或使用接受历史道具的组件包装App
组件。Router
索引.js
import { BrowserRouter } from 'react-router-dom'
ReactDOM.render(<BrowserRouter>
<App />
</BrowserRouter>,document.getElementById("root"));
应用程序.js
import React from 'react';
import Nav from './Nav';
import { BrowserRouter as Router ,Switch, Route} from 'react-router-dom';
import About from './About'
function App() {
return (
<>
<Nav/>
<Switch>
<Route exact path='/about'>
<About/>
</Route>
</Switch>
</>
);
}
export default App;
导航.js
import React from "react";
import {BrowserRouter as Router , Link } from "react-router-dom";
import './App.css';
function Nav(){
return(
<nav>
logo
<Link to="/about">
About
</Link>
<Link to='/shop'>
shop
</Link>
</nav>
)
}
export default Nav
由于Nav.js和其他使用的组件Routes
被包装在 app 组件中,该组件进一步被包装BrowserRouter
在index.js中,因此您不需要Router
在每个具有Route
或Link
组件的组件中包含。
推荐阅读
- solr - Apache Hue 中禁用了 HTML 仪表板
- ios - UIAlertViewController 的初始化器是如何实现的?
- java - java单词搜索对角线
- python - `gradient` 在构建 TensorFlow 图时给出 AttributeError
- microsoft-graph-api - 使用 microsoft graph rest api 从邮件中下载附件
- bash - 启动容器进程导致 "exec:\"/bin/sh\": stat /bin/sh: no such file or directory": 未知
- javascript - 创建 API 以查看日志
- flutter - Flutter中有snapHelper吗?
- html - 如何让一个图像在一个图像中推高另一个图像