Я думаю, автор React Router (v4) автора просто додав, що з Router HOC, щоб заспокоїти певних користувачів. Однак я вважаю, що кращим підходом є просто використання рендеру і створення простого компонента PropsRoute, який передає ці реквізити. Це простіше перевірити, оскільки ви не "з'єднуєте" компонент, як це робить зRouter. Майте купу вкладених компонентів уRouter, і це не буде весело. Ще одна перевага полягає в тому, що ви також можете використовувати цей прохід через будь-який реквізит, який ви хочете до маршруту. Ось простий приклад використання рендерінга. (майже точний приклад з їх веб-сайту https://reacttraining.com/react-router/web/api/Route/render-func ) (src / компоненти / маршрути / реквізит-маршрут)
import React from 'react';
import { Route } from 'react-router';
export const PropsRoute = ({ component: Component, ...props }) => (
<Route
{ ...props }
render={ renderProps => (<Component { ...renderProps } { ...props } />) }
/>
);
export default PropsRoute;
використання: (зауважте, щоб отримати параметри маршруту (match.params), ви можете просто використовувати цей компонент, і ті будуть передані вам)
import React from 'react';
import PropsRoute from 'src/components/routes/props-route';
export const someComponent = props => (<PropsRoute component={ Profile } />);
також зауважте, що ви можете передавати будь-які додаткові реквізити, які ви хочете і цим шляхом
<PropsRoute isFetching={ isFetchingProfile } title="User Profile" component={ Profile } />