多个布局在react.js中不起作用

时间:2020-07-06 12:46:52

标签: reactjs routes react-router react-router-dom react-router-v4

<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>
    );
};

1 个答案:

答案 0 :(得分:0)

它应具有以下结构:

<Router history={history}>
  <MainLayout>
    <Switch>
      <Route path={ROUTES.HOME} exact strict component={Login} />
      <Route path={ROUTES.LOGIN} exact component={Login} />
      <Route path={ROUTES.SIGN_UP} exact component={SignUp} />
    </Switch>
  </MainLayout>
</Router>