Wie kann ich eine NotFound-Komponente mit React Router 4
und statische Routen definieren?NotFound Route immer mit statischen Routen angezeigt - [React Router 4]
Ich verwende die next
Version von react-router-redux
. Also, in meinem Klienten:
export default function appRoutes(history) {
return (
<ConnectedRouter history={history}>
<div>
{routes.map((route, key) => (
<Route key={key} {...route} />
))}
</div>
</ConnectedRouter>
);
}
und Routen sind:
export const routes = [
{
path: '/',
component: App
},
{
path: '/:lang/chat',
component: Chat
},
{
path: '/:lang',
component: Listing
},
...
{
path: '*',
component: NotFound,
status: 404
},
];
Mit diesem Ansatz wird die Komponente nicht immer gefunden wird, zeigt zusammen mit der angepassten Route.
Ich habe gelesen, dass anstelle der oben beschriebenen appRoutes
Methode, mit einem div, muss ich Switch verwenden. Aber mit diesem Ansatz stimmen die Routen nie überein.
EDIT
I angezeigt werden soll, zum Beispiel, App-Komponente und Listing Komponente zugleich aber die NotFound anzeigt auch.
Also, was mache ich falsch?
Aber was ist, wenn ich die „/“ Route haben, die'App' Komponente anzuzeigen, in dem ich den Header und ich habe dann die Auflistung Komponente „/: lang“, unter der Überschrift? Was Sie sagen, es ist wahr, mit Switch It rendern nur die erste Match-Komponente, die App ist. –
Ich bin mir nicht sicher, worauf Sie sich beziehen, aber wenn ich Sie richtig verstehe, verwenden Sie genaues Attribut. –
Wenn ich 'App' Komponente und' Listing' Komponente rendern möchte, wenn die URL https: // route/en/ist, muss ich exaktes Attribut verwenden? Und was ist mit der Komponente 'notFound'? Es wird nicht angezeigt? Muss ich alle meine definierten statischen Router-Komponenten exakt verwenden? Vielen Dank –