Ich habe eine Anmeldekomponente, die für nicht authentifizierte Benutzer verfügbar sein sollte. Und direkt nach der Authentifizierung sollte diese Komponente nicht mehr verfügbar sein.Wie füge ich Redirect zum reaktiven Router dynamisch hinzu?
var routes = (
<Route handler={App}>
<Route name="signIn" handler={signIn}/>
{/* redirect, if user is already authenticated */}
{ localStorage.userToken ? (
<Redirect from="signIn" to="/user"/>
) : null
}
</Route>
);
Router.run(routes, (Handler, state) => {
React.render(<Handler {...state}/>, document.getElementById('main'));
});
Dieser Code funktioniert perfekt, wenn Benutzer Webapp aus irgendeinem Grunde nach der Authentifizierung neu geladen haben, aber natürlich ist es nicht, wenn der Benutzer neu zu laden nicht die Webapp. Ich habe versucht, this.context.router.transitionTo
Recht auf die SignUp-Komponente zu verwenden, aber es funktioniert schrecklich - die Komponente wird gerendert, dann wird dieses Skript ausgeführt.
Also ich möchte die Umleitung direkt in die Routen-Variable hinzufügen, um den Router umleiten zu lassen, ohne auch nur versuchen, die Komponente zu rendern.
In diesem Blogbeitrag wird der 'onEnter'-Ansatz im Detail erläutert und ein alternativer, möglicherweise DRY-er-Ansatz vorgestellt: https://medium.com/the-many/adding-login-and-authentication-sections-to-your -react-or-react-native-app-7767fd251bd1 # .bx9i9hnb1 – theUtherSide