Quería construir un inicio de sesión de Facebook en mi aplicación react/react-router/flux.
Tengo un oyente registrado en el evento de inicio de sesión y me gustaría redirigir al usuario a '/dashboard'
si han iniciado sesión. ¿Cómo puedo hacerlo? location.push
no ha funcionado muy bien, excepto después de recargar la página completamente.
React Router v3**
Esto es lo que hago
var Router = require('react-router');
Router.browserHistory.push('/somepath');
React Router v4
Ahora podemos usar el componente <Redirect>
en React Router v4.
Renderizando un <Redirect>
navegaremos a una nueva ubicación. La nueva ubicación anulará la ubicación actual en la pila del historial, como las redirecciones del lado del servidor.
import React, { Component } from 'react';
import { Redirect } from 'react-router';
export default class LoginComponent extends Component {
render(){
if(this.state.isLoggedIn === true){
return (<Redirect to="/your/redirect/page" />);
}else{
return (<div>Login Please</div>);
}
}
}
Documentación https://reacttraining.com/react-router/web/api/Redirect
React Router v0.13**
La instancia Router
devuelta por Router.create
se puede pasar (o, si está dentro de un componente React, se puede obtener del objeto context), y contiene métodos como transitionTo
que se pueden usar para pasar a una nueva ruta.
En su tienda:
data.router.transitionTo('user');
Y enrutador tiene:
"Route name="user" handler={User}"
Usuario es manejador de ruta