【发布时间】:2020-07-06 12:46:52
【问题描述】:
<Router history={history}>
<Route>
<MainLayout>
<Switch>
<Route path={ROUTES.HOME} component={Login} />
<Route path={ROUTES.LOGIN} component={Login} />
<Route path={ROUTES.SIGN_UP} component={SignUp} />
</Switch>
</MainLayout>
</Route>
</Router>
即使路由更改为登录,它也只会呈现注册组件。在下方附加主布局和工具栏组件
const MainLayout = (props) => {
return (
<React.Fragment>
<Toolbar />
{props.children}
</React.Fragment>
);
};
const Toolbar = () => {
return (
<header>
<nav>
<Link to="/login">Login</Link>
<Link to="/signup">Register</Link>
</nav>
</header>
);
};
【问题讨论】:
-
看起来很奇怪。为什么需要
Route进行布局?只需用你的布局包裹你的开关,不用路由。 -
@demkovych,我这样做了,但还有另一个问题,我已经编辑了问题
-
值得看看那些 ROUTES.* 常量的值
-
export const ROUTES = { HOME: '/', SIGNUP: '/signup', LOGIN: '/login' }
-
<Route path={ROUTES.HOME} component={Login} exact strict />并将exact添加到休息路线。并且您的 HOME 和 LOGIN 路由具有相同的组件
标签: reactjs routes react-router react-router-dom react-router-v4