В 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).


Назад