W bieżącej wersji React Router (v3) mogę zaakceptować odpowiedź serwera i użyć, browserHistory.push
aby przejść do odpowiedniej strony odpowiedzi. Nie jest to jednak dostępne w wersji 4 i nie jestem pewien, jaki jest właściwy sposób obsługi tego.
W tym przykładzie przy użyciu Redux wywołanie składników / app-product-form.jsthis.props.addProduct(props)
po przesłaniu formularza przez użytkownika. Gdy serwer zwróci sukces, użytkownik zostaje przeniesiony na stronę koszyka.
// 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
});
}
Jak mogę przekierować na stronę Koszyk z funkcji React Router v4?
history
działa również dla React Native jako opcja, a także dodatkowa opcja obsługi starszych przeglądarek.
context
ręcznego przekazania tego, czego potrzebujesz ręcznie, jest „nie do zrobienia”. O ile nie jestem autorem biblioteki, nie powinno być potrzeby jej używania. W rzeczywistości Facebook odradza to.