【发布时间】:2022-01-27 15:49:23
【问题描述】:
我正在使用带有自定义历史记录对象的 React Router v5,并且重定向无法正常工作。我正在使用 react-router-dom 5.x ("^5.2.0") 和 history 4.x ("4.10.1")。我的重定向正在更新 URL,但不会在不重新加载页面的情况下呈现组件。
AppRouter.tsx
import React from "react";
import {Route, Router, Switch} from "react-router-dom";
import {createBrowserHistory} from "history";
import {paths} from "../configs/routerConfigs";
import Main from "../modules/Main";
import Blog from "../modules/Blog"
import Store from "../modules/Store"
import Gallery from "../modules/Gallery";
const history = createBrowserHistory();
const AppRouter = () => {
return (
<Router history={history}>
<Switch>
<Route
path={paths.blog()}
exact
>
<Blog/>
</Route>
<Route
path={paths.store()}
exact
>
<Store/>
</Route>
<Route
path={paths.gallery()}
exact
>
<Gallery/>
</Route>
<Route path={paths.main()} exact>
<Main />
</Route>
</Switch>
</Router>
);
};
export default AppRouter;
这是我重定向到另一个链接的标题
index.tsx
const AppHeader: React.FC = () => {
return (
<BrowserRouter>
<Header className="app-header">
<Row gutter={16}>
<Col span={6}>
<div className="logo">
<img src={Logo} alt={"cosmonet logo"}/>
<span>Cosmonet</span>
</div>
</Col>
<Col span={12}>
<nav className={"nav"}>
<Menu className="nav-list" mode="horizontal" >
<Menu.Item key="1" className="nav-list-items"><Link to={paths.main()}>{"Main"}</Link></Menu.Item>
<Menu.Item key="2" className="nav-list-items"><Link to={paths.blog()}>{"Blog"}</Link></Menu.Item>
<Menu.Item key="3" className="nav-list-items"><Link to={paths.store()}>{"Store"}</Link></Menu.Item>
<Menu.Item key="4" className="nav-list-items"><Link to={paths.gallery()}>{"Gallery"}</Link></Menu.Item>
</Menu>
</nav>
</Col>
<Col span={6}>
<Button text={"log out"}/>
</Col>
</Row>
</Header>
</BrowserRouter>
);
};
export default AppHeader;
我尝试了其他版本的 react-router-dom 和 history,但它们似乎都不能正常工作。我什至尝试使用 forceRefresh: true 但它也不起作用:/
【问题讨论】:
标签: reactjs redirect react-router react-router-dom browser-history