
В React Router можно передавать пропсы через компоненты маршрутизации.
Пропсы могут быть переданы двумя способами: через атрибуты component и render.
- Атрибут
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!" />} />
}- Атрибут
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).