Если вы собираетесь определять свои маршруты в конфигурационном файле, то вам, вероятно, следует использовать response-router-config (который также является частью response-router)
Если у вас есть возможность взглянуть на реализацию renderRoutes
, тогда вы заметите, что он внутренне использует компонент Switch
, что означает, что вы можете поместить свои "404" маршруты в конец списка и он должен вернуться к этому, если нет другого соответствия, например:
const routes = [
{
component: Root,
routes: [
{
path: "/",
exact: true,
component: Home
},
{
path: "/child/:id",
component: Child,
routes: [
{
path: "/child/:id/grand-child",
component: GrandChild
}
]
},
{
path: "*",
component: NotFound,
},
]
}
]
Вы также можете реализовать такой компонент RedirectToNotFound
:
const RedirectToNotFound = () => <Redirect to="/404" />;
И затем настроить Конфигурационный файл выглядит так:
const routes = [
{
component: Root,
routes: [
{
path: "/",
exact: true,
component: Home
},
{
path: "/child/:id",
component: Child,
routes: [
{
path: "/child/:id/grand-child",
component: GrandChild
}
]
},
{
path: "/404",
component: NotFound
},
{
path: "*",
component: RedirectToNotFound,
},
]
}
]
Полное раскрытие: я никогда не использовал react-router-config
и , если у вас нет очень специфических c потребностей Я бы не рекомендовал его использовать.