Ho un componente di accesso, che dovrebbe essere disponibile per gli utenti non autenticati. E subito dopo l'autenticazione questo componente dovrebbe diventare non disponibile.Come si aggiunge il reindirizzamento per reagire in modo dinamico al router?
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'));
});
Questo codice funziona perfettamente se l'utente ha ricaricato webapp per qualsiasi motivo, dopo l'autenticazione, ma naturalmente non se l'utente non ha ricaricare la webapp. Ho provato ad usare il componente SignUp this.context.router.transitionTo
, ma funziona male - il componente viene sottoposto a rendering, quindi questo script viene eseguito.
Quindi voglio aggiungere il reindirizzamento a destra nella variabile rotte per rendere il router reindirizzato senza nemmeno provare a rendere il componente.
Questo post del blog discute l'approccio 'onEnter' in dettaglio e fornisce un approccio alternativo, possibilmente DRY-er: https://medium.com/the-many/adding-login-and-authentication-sections-to-your -react-o-reagiscono-native-app-7767fd251bd1 # .bx9i9hnb1 – theUtherSide