Nella versione corrente di React Router (v3) posso accettare una risposta del server e utilizzare browserHistory.push
per andare alla pagina di risposta appropriata. Tuttavia, questo non è disponibile in v4 e non sono sicuro di quale sia il modo appropriato di gestirlo.
In questo esempio, utilizzando Redux, Components / app-product-form.js chiama this.props.addProduct(props)
quando un utente invia il modulo. Quando il server restituisce un esito positivo, l'utente viene portato alla pagina Carrello.
// 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
});
}
Come posso effettuare un reindirizzamento alla pagina Carrello dalla funzione per React Router v4?
history
funziona anche con React Native come opzione e un'opzione aggiuntiva di supporto dei browser legacy.
context
per passare ciò che è necessario manualmente è un "no go". A meno che non sia un autore di biblioteche, non dovrebbe esserci la necessità di usarlo. In effetti, Facebook lo sconsiglia.