[英]React Router not loading page Until Refresh The page
您好,我是 Tanbhir Hossain,我正在尝试转换 HTML 模板以响应 js。 问题出在 React Router 中。
当我单击任何页面时,仅显示预加载直到手动刷新页面。 刷新页面时,它显示得很好。 现在我想摆脱这个问题
这是我的 RouterPage.js
import React, { Component } from 'react';
import {BrowserRouter as Router, Routes, Route} from 'react-router-dom'
import Home from './Home';
import About from './About';
import Contact from './Contact';
class RouterPage extends Component {
render() {
return (
<div>
<Router>
<Routes>
<Route path='/' element={< Home />} />
<Route path='/about' element={< About />}/>
<Route path='/contact' element={< Contact />}/>
</Routes>
</Router>
</div>
);
}
}
export default RouterPage;
这是我的链接
<Link to={'/about' } data-toggle="dropdown" className="dropdown-toggle nav__item-link">About Us</Link>
删除 to={'/about} 到 to='/about' 我希望问题能得到解决
希望您使用的是使用 jquery 创建的模板,这些模板通常会在页面加载时显示.preloader
class 的 div 元素
jquery 在页面完全下载其资产(即图像、css 文件等)后淡出预加载器页面。
但是 react 尤其是 react-router-dom 并不遵循完全相同的程序。 它有自己的生命周期
一个提示是 go 到您的模板 html 文件并注释掉如下所示的预加载器部分,只需将其注释掉。
<div className="preloader">
....
</div>
2 . 你可以选择玩它,让反应生命周期方法操纵显示/隐藏效果
我也面临这个挑战。 我通过在 index.js 中用<BrowserRouter>
标签替换<React.StricMode>
解决了这个问题。
// index.js 应该看起来像这样
import {BrowserRouter} from 'react-router-dom'
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
<BrowserRouter>
<App />
</BrowserRouter>
);
注意:在 App.js 中添加标签来包装所有组件与上面的不同。
类似的问题在这里
我遇到了同样的问题所以我重新安装了 react-router-dom package 我的问题得到了解决
在您的 powershell 中运行这些命令以重新安装 reactrouter 包
npm install react-router-dom
要么
yarn add react-router-dom
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.