所以我有一个类似于文档中的路线:<Route path="*"><Redirect to={'/'}/></Route>
.
如果路由不存在,请确保所有路由都指向“/”。
我所有的路线都使用 <Link>
标签,但当我在 URL 栏中键入它们时不会。
怎么会这样?我在网上找不到这方面的信息。
索引文件:
return(
<Fragment>
<BrowserRouter basename={`/`}>
<Switch>
<App>
<TransitionGroup>
{routes.map(({ path, Component }) => (
<Route key={path} exact path={`${process.env.PUBLIC_URL}${path}`}>
{({ match }) => (
<CSSTransition in={match != null} timeout={100} classNames={anim} unmountOnExit>
<div><Component/></div>
</CSSTransition>
)}
</Route>
))}
<Route exact path="*"><Redirect to={'/'}/></Route>
</TransitionGroup>
</App>
</Switch>
</BrowserRouter>
</Fragment>
)
路由文件:export const routes = [
{
path:`/`,
Component:Home
},
{
path:`/login`,
Component:Login
},
{
path:`/signup`,
Component:Signup
},
{
path:`/event/:name`,
Component:Event
},
{
path:`/create-event`,
Component:CreateEvent
},
]链接标签:
<Link to={"/event/" + events[i].name} className="text-dark">
最佳答案
从 react 路由器文档,<Switch>
的所有 child 应该是 <Route>
或 <Redirect>
元素。只会呈现与当前位置匹配的第一个 child 。
我可以看到 <Route>
不是 <Switch>
的直系或第一个 child
关于reactjs - React 路由器在 URL 栏中不起作用,但它仍然适用于 <Link> 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69328971/