我尝试在点击提交按钮后重定向我的页面,为此,我的onSubmit方法看起来像;
onSubmit(e){
e.preventDefault();
if (this.isValid()){
this.setState({ errors: {}, isLoading: true });
this.props.userSignupRequest(this.state).then(
() => {
this.context.router.push('/');
},
( data ) => this.setState({ errors: data.response.data, isLoading: false })
);
}
}
我的 propTypes 和 contextTypes ;
SignupForm.propTypes = {
userSignupRequest: React.PropTypes.func.isRequired
}
SignupForm.contextTypes = {
router: React.PropTypes.object.isRequired
}
我不知道为什么,但它一直显示错误而不是重定向。 我还尝试了 browserHistory.push('/'),但它也没有用。
我接受的错误是;
Uncaught (in promise) TypeError: _this2.context.router.push is not a function
at props.userSignupRequest.then._this2.setState.errors
正如我所说,我也尝试过 browserHistory ;
import { browserHistory } from 'react-router';
和onSubmit方法;
onSubmit(e){
e.preventDefault();
if (this.isValid()){
this.setState({ errors: {}, isLoading: true });
this.props.userSignupRequest(this.state).then(
() => {
browserHistory.push('/');
},
( data ) => this.setState({ errors: data.response.data, isLoading: false })
);
}
}
我的路由器也像;
const router = (<Provider store={store}>
<Router history={browserHistory}>{routes}</Router>
</Provider>);
它抛出的错误与另一个错误相同。
Uncaught (in promise) TypeError: Cannot read property 'push' of undefined
at props.userSignupRequest.then._this2.setState.errors
如果还需要更多内容,请在下面添加,我会修改我的帖子。
感谢。
答案 0 :(得分:5)
我通过更改下面的代码解决了这个问题。
this.context.router.push('/');
在大于等于4.0.0的react-router版本中,此推送方法移至&#34; 历史&#34;方法及其新版本似乎;
this.context.router.history.push('/');
这很好用,解决了我的问题。
注意强>
你可以从&#39; 反应&#39;中看到我说的话。浏览器的标签页。