【发布时间】:2020-12-25 07:01:08
【问题描述】:
我正在使用带有材料 ui 的反应路由器 dom v5,并且我的路由方式如下:
import React from 'react'
import { BrowserRouter, Route, Switch } from 'react-router-dom'
import Layout from '../components/layout'
import Login from '../screens/Login'
import NotFound from '../screens/NotFound'
import routes from './routes'
const DynamicRoutes = () => {
return (
<>
{Object.values(routes).map(({ component, path }) => (
<Route exact path={path} key={path} component={component} />
))}
</>
)
}
const Router = () => {
return (
<BrowserRouter>
<Switch>
<Route exact path="/login" component={Login} />
<Layout>
<DynamicRoutes />
</Layout>
<Route path="*" component={NotFound} />
</Switch>
</BrowserRouter>
)
}
export default Router
我已经尝试过<Route component={NotFound} />,但对我都没有用。谁能帮我?其余路线正常工作,但当我输入假路线时,不会转到NotFound 屏幕。
【问题讨论】:
-
您好,这对我来说似乎是一个有趣的问题。感谢您分享您已经尝试过的解决方案。我的猜测是,当您尝试“假路由”时,您实际上并没有键入或机械重定向,而是您尝试从
Layout组件尝试在组件内重定向它。我说的对吗? -
嗨@GiorgiGvimradze,我在我定义的路线之一,即
Layout组件内部,我想从那里加载NotFound组件。想象一下,我在一条名为/home的路线上,即在Layout的内部,然后您在网址上键入/home/random-text,然后我不会被重定向到NotFound屏幕。我能做什么? -
stackoverflow.com/questions/69162456/…。有人也可以回答这个问题吗?
标签: javascript reactjs typescript react-router react-router-dom