Ich glaube, Sie sind zu erwähnen, „Routen sind für die Benutzer erlaubt?“, Was bedeutet, einige Schicht-Authentifizierung in Ihrer Anwendung ist.
Lets in Ihrem initial sagen, Sie haben:
{
user: undefined,
logged: false
}
Was könnten Sie tun, ist die Strecke, um den Zustand der Immobilie zu überprüfen, so etwas wie dekorieren:
const renderMergedProps = (component, ...rest) => {
const finalProps = Object.assign({}, ...rest);
return (
React.createElement(component, finalProps)
);
};
const PrivateRoute = ({ user, component, redirectTo, ...rest }) => {
return (
<Route {...rest} render={routeProps => {
return user.logged ? (
renderMergedProps(component, routeProps, rest)
) : (
<Redirect to={{
pathname: redirectTo,
state: { from: routeProps.location }
}} />
);
}} />
);
};
könnte Sie jetzt definieren Routen und privateroutes, die notwendigen Requisiten vorbei:
<Route exact path="/" render={() => (<Redirect to="/dashboard" />)} />
<PrivateRoute path="/dashboard" component={App} user={user} redirectTo="/login"/>
Dann das beste Sol Um auf Zustandsänderungen zu reagieren, würde dies redu- ziert werden. Kann mehr bei Bedarf ausführen.
Sie können es in der ComponentWillMount-Funktion in Komponente von Zielroute geladen verwalten. Sie können einen Blick darauf werfen, um darauf zu reagieren, es hat nette Eigenschaften. –
https://reacttraining.com/reac-router/web/example/no-match – arpl