Javascript 反应&;Redux Form-当第一个请求尚未完成时,防止表单重复请求';我还没有决定

Javascript 反应&;Redux Form-当第一个请求尚未完成时,防止表单重复请求';我还没有决定,javascript,reactjs,redux,redux-form,Javascript,Reactjs,Redux,Redux Form,我有一个问题,如果我在redux表单(v.6)上点击提交两次,它会非常快地发送两个操作,然后->ajax请求到我的服务器,这将创建一个重复的请求 当表单中的条目保存在数据库中时,禁用“提交”按钮并在条目存储后再次启用它的最佳方法是什么。我尝试了(disabled={submitting}),但下面的示例似乎不起作用。没有太多关于它的信息,所以我是不是用错了 class Timesheet extends Component { ... onSubmit(props) { console

我有一个问题,如果我在redux表单(v.6)上点击提交两次,它会非常快地发送两个操作,然后->ajax请求到我的服务器,这将创建一个重复的请求

当表单中的条目保存在数据库中时,禁用“提交”按钮并在条目存储后再次启用它的最佳方法是什么。我尝试了(disabled={submitting}),但下面的示例似乎不起作用。没有太多关于它的信息,所以我是不是用错了

class Timesheet extends Component {
...
  onSubmit(props) {
   console.log('submitting', props);
   createTimesheet(props);
  }


  render() {

    const {handleSubmit, reset, submitting} = this.props;

    return(
      <form onSubmit={handleSubmit(this.onSubmit.bind(this))}>
      ... form details
      <button type="submit" disabled={submitting} className="btn btn-primary">Submit</button>
      </form>
    )
  }
}

...

const TimesheetForm = reduxForm({
  form: 'TimesheetNewForm',
  enableReinitialize: true
}
, null, {createTimesheet})(Timesheet);
...
类时间表扩展组件{
...
提交(道具){
console.log(“提交”,道具);
创建时间表(道具);
}
render(){
const{handleSubmit,reset,submiting}=this.props;
返回(
…表格详情
提交
)
}
}
...
const TimesheetForm=reduxForm({
表格:“时间表新表格”,
启用重新初始化:true
}
,null,{createTimesheet})(时间表);
...

您的
onSubmit
函数应该返回一个
承诺


在这种情况下,
此.props.submiting
将在承诺解决之前变为
true

您的
onSubmit
函数应返回一个
承诺


在这种情况下,
此.props.submitting
将在承诺解决之前变为
true

您可以像

onSubmit={values => {
      return new Promise(resolve => {
method(){
return resolve
}
});
});

你可以用承诺,比如

onSubmit={values => {
      return new Promise(resolve => {
method(){
return resolve
}
});
});