В React Router можно передавать пропсы через компоненты маршрутизации.

Пропсы могут быть переданы двумя способами: через атрибуты component и render.

  1. Атрибут component:
import { Route } from "react-router-dom";
 
function MyComponent(props) {
  return <div>{props.text}</div>;
}
 
function App() {
  return (
    <Route
      path="/my-route"
      component={() => <MyComponent text="Hello, World!" />}
    />
  );
}
  1. Атрибут render:
import { Route } from "react-router-dom";
 
function MyComponent(props) {
  return <div>{props.text}</div>;
}
 
function App() {
  return (
    <Route
      path="/my-route"
      render={() => <MyComponent text="Hello, World!" />}
    />
  );
}

В обоих случаях мы создаем маршрут для пути “/my-route” и рендерим компонент MyComponent. Пропс text передается в компонент через атрибуты component или render.

Если вы хотите передать дополнительные пропсы в компонент, вы можете использовать метод расширения объекта:

import { Route } from "react-router-dom";
 
function MyComponent(props) {
  return (
    <div>
      <p>{props.text}</p>
      <p>{props.anotherProp}</p>
    </div>
  );
}
 
function App() {
  return (
    <Route
      path="/my-route"
      render={(routeProps) => (
        <MyComponent
          text="Hello, World!"
          anotherProp="Another prop value"
          {...routeProps}
        />
      )}
    />
  );
}

В этом примере мы добавляем проп anotherProp в компонент MyComponent, а также передаем все пропсы маршрутизации через метод расширения объекта (...routeProps).


Назад