在当前版本的React Router(v3)中,我可以接受服务器响应并使用 browserHistory.push
转到相应的响应页面。但是,这在v4中不可用,我不确定哪种适当的处理方式。
在此示例中,使用Redux,当用户提交表单时,components / 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建议不要这样做。