【发布时间】:2020-11-11 16:08:25
【问题描述】:
这两天我都快疯了。请各位大侠帮忙。我正在尝试实现嵌套路由。但它不工作。当我转到 http://localhost:3000 时,它会正确显示。但是当我访问 http://localhost:3000/contact 时。它不起作用。我已经尽力了。请帮忙????
//App js
import React from 'react';
import { Switch, Route } from 'react-router-dom';
import Main from './features/Main/Main';
import Dashboard from './features/Dashboard/Dashboard';
import Nomatch from './features/Nomatch';
function App() {
return (
<div>
<Switch>
<Route exact path='/'> <Redirect to='/home' /></Route>
<Route path="/home" component={Main} />
<Route path="/dashboard" component={Dashboard} />
<Route component={Nomatch} />
</Switch>
</div>
);
}
export default App;
//////////////////////////////////
//Main.js
import React from 'react';
import { Switch, Route, useRouteMatch } from 'react-router-dom';
import Home from './Home';
import Contact from './Contact';
const Main = () => {
const { path, url } = useRouteMatch();
return(
<div>
<Switch>
<Route exact path='/' component={Home} />
<Route path={`${path}/contact`} component={Contact} />
</Switch>
</div>
)
}
export default Main
【问题讨论】:
-
我不想拥有 /home/contact。但是 /home , /contact /faq /dashboard。有没有可能
-
你需要用路由器包裹
Main的孩子