Я думаю, что автор React Router (v4) только что добавил это с помощью Router HOC, чтобы успокоить определенных пользователей. Тем не менее, я считаю, что лучше всего использовать рендер-проп и создать простой компонент PropsRoute, который пропускает эти реквизиты. Это легче проверить, поскольку вы не «подключаете» компонент, как это делает withRouter. Имейте кучу вложенных компонентов, завернутых в withRouter, и это не будет весело. Еще одним преимуществом является то, что вы также можете использовать этот проход через любые реквизиты, которые вы хотите на маршруте. Вот простой пример использования рендера проп. (в значительной степени точный пример с их веб-сайта https://reacttraining.com/react-router/web/api/Route/render-func ) (src / components / route / props-route)
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 } />