Trong phiên bản hiện tại của React Router (v3), tôi có thể chấp nhận phản hồi của máy chủ và sử dụng browserHistory.push
để đi đến trang phản hồi thích hợp. Tuy nhiên, điều này không có sẵn trong v4 và tôi không chắc cách thích hợp để xử lý việc này là gì.
Trong ví dụ này, sử dụng Redux, các thành phần / ứng dụng-sản phẩm-form.js gọi this.props.addProduct(props)
khi người dùng gửi biểu mẫu. Khi máy chủ trả về thành công, người dùng sẽ được đưa đến trang Giỏ hàng.
// 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
});
}
Làm cách nào tôi có thể chuyển hướng đến trang Giỏ hàng từ chức năng cho React Router v4?
history
cũng hoạt động cho React Native như một tùy chọn cũng như một tùy chọn bổ sung hỗ trợ các trình duyệt cũ.
context
để vượt qua những gì bạn cần một cách thủ công là "không đi". Trừ khi tôi là một tác giả thư viện, không nên sử dụng nó. Trong thực tế, Facebook khuyến cáo chống lại nó.