reactjs 使用React-Router-Dom V6仅在家中显示侧栏导航

qojgxg4l  于 2022-12-03  发布在  React
关注(0)|答案(2)|浏览(208)

我有这个解决方案,但是,如何在V6中实现这一点?

export default function App() {
  return (
    <div className="app">
      <Router>
        <Switch>
          <Route exact path="/home">
            {' '}
            {/* Here */}
            <SideBar />
            <Home />
          </Route>
          <Route exact path="/search">
            <Search />
          </Route>
          <Route exact path="/foo">
            <Foo />
          </Route>
        </Switch>
      </Router>
    </div>
  );
}

由于交换机不存在,路由不允许直接 Package 元素。

e5nqia27

e5nqia271#

使用react-router的新v6,您可以使用Routes组件代替Switch
如果Route中有内容,则需要将内容传递给element属性。
此外,由于现在不需要exact,因此不再支持exact,路由器直接匹配path

export default function App() {
  return (
    <div className="app">
      <Router>
        <Routes>
          <Route
            path="/home"
            element={
              <>
                {/* Here */}
                <SideBar />
                <Home />
              </>
            }
          ></Route>
          <Route path="/search" element={<Search />}></Route>
          <Route path="/foo" element={<Foo />}></Route>
        </Routes>
      </Router>
    </div>
  );
}
arknldoa

arknldoa2#

有点晚了。但是。也许侧边栏的“直接”注入选项不适合你。最佳实践,没有侧边栏过多的重新渲染/生命周期:

<Routes>
             <Route element={<SideBar />}
                 <Route
                  path="/home"
                  element={<Home />}
                 />
             /** ... some other routes with sidebar here ... */
             </Route>

              <Route path="/search" element={<Search />}></Route>
              <Route path="/foo" element={<Foo />}></Route>
           </Routes>

相关问题