У поточній версії React Router (v3) я можу прийняти відповідь сервера та використовувати його browserHistory.push
для переходу на відповідну сторінку відповідей. Однак це не доступно в v4, і я не впевнений, що є правильним способом впоратися з цим.
У цьому прикладі, використовуючи Redux, компоненти / app-product-form.js викликає, this.props.addProduct(props)
коли користувач подає форму. Коли сервер повертає успіх, користувач переходить на сторінку Кошик.
// 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
});
}
Як я можу зробити переадресацію на сторінку кошика з функції React Router v4?
history
також працює для React Native як варіант, а також додаток для підтримки застарілих браузерів.
context
для передачі того, що вам потрібно вручну, це "не йти". Якщо я не автор бібліотеки, не слід використовувати її. Насправді Facebook рекомендує проти цього.