En la versión actual de React Router (v3) puedo aceptar una respuesta del servidor y usarla browserHistory.push
para ir a la página de respuesta apropiada. Sin embargo, esto no está disponible en v4, y no estoy seguro de cuál es la forma adecuada de manejar esto.
En este ejemplo, usando Redux, components / app-product-form.js llama this.props.addProduct(props)
cuando un usuario envía el formulario. Cuando el servidor devuelve un éxito, el usuario es llevado a la página Carrito.
// actions/index.js
export function addProduct(props) {
return dispatch =>
axios.post(`${ROOT_URL}/cart`, props, config)
.then(response => {
dispatch({ type: types.AUTH_USER });
localStorage.setItem('token', response.data.token);
browserHistory.push('/cart'); // no longer in React Router V4
});
}
¿Cómo puedo hacer una redirección a la página del carrito desde la función React Router v4?
history
también funciona para React Native como una opción, además de una opción adicional de admitir navegadores heredados.
context
para pasar lo que necesita manualmente es un "no ir". A menos que sea un autor de biblioteca, no debería ser necesario usarlo. De hecho, Facebook recomienda no hacerlo.