【问题标题】:How to hide Footer component for some pages in react如何在反应中隐藏某些页面的页脚组件
【发布时间】:2021-12-27 11:17:11
【问题描述】:

我想在某些页面中隐藏页脚组件

app.js

<div className="App">
  <Header setShowMenu={setShowMenu} />
  {showMenu ? <Menu navigateTo={navigateTo} setShowMenu={setShowMenu} /> : null}
  <Main navigateTo={navigateTo} />
  <Footer navigateTo={navigateTo} />
</div>

main.jsx

<div>
    <Routes>
        <Route path="/" element={<HomePage navigateTo={navigateTo} />}  />
        <Route path="/precard" element={<PreCard />}  />
        <Route path="/order" element={<Order />}  />
        <Route path="/contact" element={<Contact />}  />
        <Route path="/thankspage" element={<ThanksPage navigateTo={navigateTo}/>}  />
        <Route path="/*" element={<HomePage />} />
    </Routes>
</div>

注意:index.js 中的路由器

所以我想在./order页面中隐藏页脚

我希望你们有我的解决方案:)

【问题讨论】:

    标签: javascript reactjs react-hooks react-router components


    【解决方案1】:

    您可以使用useLocation()钩子检查&lt;Footer /&gt;组件中的路由路径,并根据pathname渲染&lt;Footer /&gt;组件。

    示例:

    import React from "react";
    import { useLocation } from "react-router-dom";
    
    const Footer = () => {
      const { pathname } = useLocation();
      console.log(pathname);
      // you can check a more conditions here
      if (pathname === "/thanks") return null;
    
      return <div className="footer">Footer</div>;
    };
    export { Footer };
    

    App.js

    import { Route, Switch, BrowserRouter } from "react-router-dom";
    import "./styles.css";
    import { Home } from "./pages/Home";
    import { Catalog } from "./pages/Catalog";
    import { Thanks } from "./pages/Thanks";
    import { Header } from "./components/Header";
    import { Footer } from "./components/Footer";
    import { Page404 } from "./pages/Page404";
    
    const App = () => {
    
      return (
        <>
          <BrowserRouter>
            <Header />
            <Switch>
              <Route path={"/"} exact>
                <Home />
              </Route>
              <Route path={"/catalog"} exact>
                <Catalog />
              </Route>
              <Route path={"/thanks"} exact>
                <Thanks />
              </Route>
              <Route path={"*"}>
                <Page404 />
              </Route>
              {/* <Redirect to={'/'} /> */}
            </Switch>
            <Footer />
          </BrowserRouter>
        </>
      );
    };
    
    export { App };
    

    【讨论】:

      猜你喜欢
      • 2021-12-01
      • 2021-04-20
      • 2016-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-05
      • 2014-04-05
      • 2013-02-23
      相关资源
      最近更新 更多