提交后需要重定向到上一页

时间:2017-02-16 09:55:40

标签: javascript reactjs

我需要在提交表单后重定向到premontessori页面。我怎么能这样做?

这是我的handleSubmit功能:

handleSubmit(event) {
     event.preventDefault();
     <Link to='/premontessori' style={{textDecoration:'none'}} > alert("New Student Created");</Link>
     var data= {
           Fname:this.state.Fname,
           age:this.state.age,
           Lname:this.state.Lname,
           dob:this.state.dob,
           pob:this.state.pob,
           month:this.state.month,
           nation:this.state.nation,
           mothertongue:this.state.mothertongue,
           bloodgroup:this.state.bloodgroup
      };
      axios.post('/create',data)
        .then(function(response){
        console.log(response);
      })
}

3 个答案:

答案 0 :(得分:1)

您可以使用react router(例如-hapHistory)进行导航。

hashHistory.goBack();

答案 1 :(得分:1)

链接不是动态路由的正确方法。您需要使用context.router导航到上一个路径

如果您的组件名称为MyComponent,请在组件外添加以下行

MyComponent.contextTypes = {
  router: React.PropTypes.object.isRequired
}

导航为this.props.context.router.push('routename');

我建议您在axios success回调中执行此操作,而不是在

之前执行此操作
class MyComponent extends React.Component {
    ..............
    handleSubmit(event) {
           event.preventDefault();
           var self = this;
            var data= {Fname:this.state.Fname,
               age:this.state.age,
               Lname:this.state.Lname,
               dob:this.state.dob,
               pob:this.state.pob,
               month:this.state.month,
               nation:this.state.nation,
               mothertongue:this.state.mothertongue,
               bloodgroup:this.state.bloodgroup
              };
            axios.post('/create',data)
            .then(function(response){
            console.log(response);
             self.context.router.push('/premontessori')
           })
         }
     ..............
}

MyComponent.contextTypes = {
  router: React.PropTypes.object.isRequired
}

答案 2 :(得分:0)

Import您使用的history object hashHistorybrowserHistory

import {hashHistory} from 'react-router';

并使用

hashHistory.push('/premontessori');