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