В текущей версии 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 рекомендует против этого.