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