У меня есть компонент, который принимает аналогичные параметры для стандартного реагирующего маршрутизатора Route
и возвращает маршрут. Этот возвращенный маршрут имеет реквизит рендера, который просто проходит через компонент, но добавляет компонент nav. Этот пользовательский NavRoute
не работает с компонентом реагирующего маршрутизатора Switch
, так как, когда я использую пользовательский компонент внутри коммутатора вместе с универсальной страницей 404, страница всегда отображается.
Как можно Я заставляю компонент 404 показывать только, если ни один из других маршрутов не соответствует URL?
NavRoute
const NavRoute = ({ exact, path, component: Component }) => {
return (
<Route exact={exact} path={path} render={(props) => (
<div style={styleSideNav}>
<Nav />
<Component {...props} />
</div>
)}/>
);
});
Использование
<Switch>
<NavRoute exact path="/" component={Home} />
<NavRoute exact path="/about" component={About} />
<Route path="/" component={Page404} />
</Switch>
РЕДАКТИРОВАТЬ: Codesandbox полного примера: https://codesandbox.io/s/react-router-stack-overflow-5jcum URL кодовandobx: https://5jcum.csb.app/invite/abc