簡體   English   中英

App.js 中某些頁面的渲染側邊欄 ReactJs

[英]Render sidebar for some pages in App.js ReactJs

我想為除登錄和注冊之外的所有頁面呈現側邊欄。 只是想確認是否有其他最佳方法可以做到這一點,並在這種情況下管理 404 頁面。

return loading ? (
    <p>loading</p>
  ) : (
    <>
      <Router>
        <div className="app">
          <NavBar />
          <ToastContainer />
          <Switch>
            <Route path={LOGIN_ROUTE} component={LoginPage} exact />
            <Route path={SIGNUP_ROUTE} component={SignupPage} exact />
            <div className="app-container">
              {showSidebar && <Sidebar />}
              <div className="app-main">
                <Switch>
                  <Route path={HOME_ROUTE} component={HomePage} exact />
                  <Route
                    path="*"
                    component={() => (
                      <NotFound setShowSidebar={setShowSidebar} />
                    )}
                  />
                </Switch>
              </div>
            </div>
          </Switch>
        </div>
      </Router>
    </>
  );

您可以將路由器配置代碼拆分為兩個組件,一個具有身份驗證路由,另一個具有歸屬路由。 因此,您可以將導航欄包含在 home 組件中。 例如,

 // In router.js <Router> <Route path="/auth" component={AuthComponent} exact /> <Route path="/home" component={HomeComponent} exact /> <Route path="*" component={() => (<NotFound setShowSidebar= {setShowSidebar} />)}/> </Router> // In AuthComponent <Router> <Route path="/signin" component={SigninComponent} exact /> <Route path="/signup" component={SignupComponent} exact /> <Route path="*" component={() => (<NotFound setShowSidebar= {setShowSidebar} />)}/> </Router> // In HomeComponent <div> <Navbar /> <Router> <Route path="/signin" component={SigninComponent} exact /> <Route path="/signup" component={SignupComponent} exact /> <Route path="*" component={() => (<NotFound setShowSidebar= {setShowSidebar} />)}/> </Router> </div>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM