Obține params din afara traseului componentă în Reacționa Router 6

0

Problema

Am creat 2 componente nume Layout și Homepage. Apoi am adaugat Layout în schimb și să pună în aplicare 2 traseu interior cu Homepage componenta. Acum sunt încercarea de a obține params de useParams cârlig interior Layout componenta în timp ce eu sunt la locul de /10. Este posibil? Se da gol din partea mea.

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

Cel mai bun răspuns

1

Layout componenta trebuie să ofere children astfel, rutele sunt efectiv prestate. Am încercat acest lucru, deși și nu părea să se ridice de pe traseu params. Îmi pare rău, nu este imediat clar de ce în acest moment.

DAR

Comune model pentru prestarea machete este de a face layout componentă într-un traseu și au aspectul face o Outlet pentru copii/imbricate rute să fie prestate pe.

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

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

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

Rute

<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

În alte limbi

Această pagină este în alte limbi

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