reactjs - 如何将 BrowserRouter 从 react-router-dom 更改为 Router 以使用自定义历史对象?
问题描述
我正在尝试使用自定义历史对象来在我的 redux 操作中使用 history.push()。这是我的代码:
应用程序.js
//** Import router */
import { Router } from 'react-router-dom';
import myHistory from './utils/history';
const App = () => {
return (
<Router history={myHistory}>
<MainNavigation />
<Routes />
</Router>
);
};
export default App;
历史.js:
import { createBrowserHistory } from 'history';
export default createBrowserHistory();
路由.js
//** Import routers */
import { Route, Switch } from 'react-router-dom';
const Routes = () => {
return (
<Switch>
<Route exact path='/' component={Home} />
<Route exact path='/about' component={About} />
<Route exact path='/contact' component={ContactForm} />
<Route exact path='/user-profile' component={UserAccount} />
</Switch>
);
};
export default Routes;
MainNavigation.js
import { Link } from 'react-router-dom';
const MainNavigation = () => {
return (
<>
<div className='navigation'>
<ul>
<li>
<Link to='/'>Home</Link>
</li>
<li>
<Link to='/contact'>Contact</Link>
</li>
<li>
<Link to='/about'>A propos</Link>
</li>
<li>
<Link to='/user-profile'>Votre compte</Link>
</li>
</ul>
</div>
</>
);
};
export default MainNavigation;
当我尝试使用history.push() 或在不同组件之间 导航时,url 会发生变化,但组件不会呈现,我必须刷新页面才能使其显示。我在这个问题上几天了,我不知道还能做什么。任何建议将不胜感激。
谢谢你。
解决方案
推荐阅读
- linux - Shell 脚本 - tar 命令将存档名称误认为是目录
- java - 如何将我的 Java 代码集成到具有标准 HTML、CSS、Javascript 的 Web 应用程序?
- sails.js - 将 Sails.js 中的所有 404 响应定向到单页应用程序的 index.html 静态资产?
- pthreads - posix 自旋锁的鲁棒性
- c# - IconPack:FontAwesome 图标消失在自定义 TabItem 中
- python - python - html - 插入包含嵌套标签的兄弟元素
- graph-theory - 每个节点之间的分离度最多为 2 度,但平均度数最小的图
- ruby-on-rails - Rails omniauth 和常规登录,给出未定义的方法错误
- python - 处理4维数组python
- laravel - 如何在模型中编写自定义函数?