javascript React Router v5嵌套在单独组件中的路由[重复]

iezvtpos  于 2023-05-16  发布在  Java
关注(0)|答案(1)|浏览(243)

此问题已在此处有答案

React child nested routes(1个答案)
2天前关闭。
我正在尝试将我的身份验证路由与应用内容路由分开:
App.jsx:

<BrowserRouter history={history}>
  <Switch>
    <Route
      exact
      path={`${process.env.REACT_APP_ROUTE_PREFIX}`}
      component={PrivateRouteWrapper}
    />
    <Route
      exact
      path={`${process.env.REACT_APP_ROUTE_PREFIX}/login`}
      component={LoginPage}
    />
    <Route
      exact
      path={`${process.env.REACT_APP_ROUTE_PREFIX}/signup`} 
      component={SignupPage}
    />
  </Switch>
</BrowserRouter>

PrivateRouteWrapper.jsx:

<React.Fragment>
  <PrivateRoute
    exact
    path={process.env.REACT_APP_ROUTE_PREFIX}
    component={Page1}
    titleText={"Quest"}
    titleVisibility={true}
  />
  <PrivateRoute
    exact
    path={`${process.env.REACT_APP_ROUTE_PREFIX}/page2`}
    component={Page2}
  />
  <MyComponentSharedBetweenPages />
</React.Fragment>

PrivateRoute.jsx:

const PrivateRoute = ({ component: Component, ...rest }) => (
  <Route
    {...rest}
    render={props => loggedIn
      ? <Component {...props} />
      : <Redirect
          to={{ pathname: `${process.env.REACT_APP_ROUTE_PREFIX}/login` }}
        />
    }
  />
);

登录、注册和page1路由之间的路由工作正常。但是当我试着去第2页的时候,页面变得空白。
我做错了什么?

niknxzdl

niknxzdl1#

我想明白了我从Route中删除了确切的属性,并将其移到App.jsx列表的末尾:

<BrowserRouter history={history}>
          <Switch>
            <Route exact path={`${process.env.REACT_APP_ROUTE_PREFIX}/login`} component={LoginPage} />
            <Route exact path={`${process.env.REACT_APP_ROUTE_PREFIX}/signup`} component={SignupPage} />
            <Route path={`${process.env.REACT_APP_ROUTE_PREFIX}`} component={PrivateRouteWrapper} />
          </Switch>
        </BrowserRouter>

相关问题