【发布时间】:2023-04-03 18:30:01
【问题描述】:
我尝试了不同的方法来进行重定向。页面仍然在同一条路线上。尽管相同的代码适用于以前的项目,但对我没有任何帮助。使用 react-router-dom v5.2.0
import * as React from 'react';
import { RouteComponentProps, Redirect, withRouter } from 'react-router-dom';
import Login from 'root/pages/Login';
import Page404 from 'root/pages/404';
interface RouterProps {
title: string;
}
const LOGIN = 'login';
const PRODUCTS = 'products';
class Admin extends React.Component<RouteComponentProps<RouterProps>> {
componentDidMount(): void {
this.props.history.push('/');
window.open('/')
}
switchRoutes(): JSX.Element {
const { title } = this.props.match.params;
switch(title) {
case LOGIN:
return <Login />
case PRODUCTS:
return <h1>Products</h1>
default:
return <Redirect to="/404" />
//return <Page404 />
}
}
render(): JSX.Element {
return this.switchRoutes();
}
}
export default withRouter(Admin);
【问题讨论】:
-
控制台有错误吗?如果不是重定向,会呈现什么?
-
最终到达哪条路线,
/404? -
没有错误。我实际上尝试了不同的路线,没有一个有效
-
您确定
Admin组件正在被渲染吗?这个组件是如何渲染的? -
它正在路由器中渲染。 /login 和 /products 运行良好
标签: javascript reactjs typescript react-router-dom