React Router 6'daki route bileşeninin dışından param alın

0

Soru

Adında 2 bileşen oluşturdum Layout ve Homepage. Sonra ekledim Layout buna karşılık, içinde 2 rota uygulayın ve uygulayın Homepage bileşen. Şimdi almaya çalışıyorum params tarafından useParams içinde kanca Layout ben konumdayken bileşen /10. Mümkün mü? Benim tarafımda boşluk bırakıyor.

App.js

const App = () => {
  return (
    <Layout>
      <Routes>
        <Route path="/" element={<Homepage />} />
        <Route path="/:id" element={<Homepage />} />
      </Routes>
    </Layout>
  );
}

Layout.js

import { useParams } from "react-router-dom";

const Layout = () => {
  const params = useParams();
  console.log(params);
  return(
    <div>
      Hello World
    </div>
  );
}
1

En iyi cevabı

1

Layout bileşenin kendi oluşturması gerekiyor children yani rotalar gerçekten görselleştirildi. Yine de bunu denedim ve rota parametrelerinde görünmüyordu. Üzgünüm, bu noktada neden olduğu hemen belli değil.

ama

Mizanpajları işlemek için ortak kalıp, mizanpaj bileşenini bir rotaya dönüştürmek ve mizanpajın bir Outlet alt öğelerinin / iç içe geçmiş yollarının işlenebilmesi için.

const Layout = () => {
  const { id } = useParams();

  useEffect(() => {
    console.log({ id });
  }, []);

  return (
    <div>
      Hello World
      <Outlet /> // <-- nested routes output here
    </div>
  );
};

Rotalar

<Routes>
  <Route path="/" element={<Layout />}>
    <Route path=":id" element={<Homepage />} /> // <-- rendered into outlet
    <Route index element={<Homepage />} />      // <-- rendered into outlet
  </Route>
</Routes>

Edit get-params-from-outside-of-route-component-in-react-router-6

2021-11-23 21:10:32

Diğer dillerde

Bu sayfa diğer dillerde

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................