我想更改表单提交处理程序,具体取决于我的活动:添加数据(this._handleFormSubmit)或更新数据(this._handleFormUpdateSubmit) 我有以下react组件的构造函数,它需要使用初始提交处理程序来添加数据:
this.state = {
modalSubmitHandler:this._handleFormSubmit}
_handleFormUpdateSubmit:
_handleFormUpdateSubmit(e)
{
e.preventDefault();
CocAccountsActions.editAccount(this.state.modalData);
}
_handleFormSubmit:
_handleFormSubmit(e)
{
e.preventDefault();
AccountsActions.addAccount(this.state.modalData);
}
当我单击容器上的某些按钮时。表单提交处理程序正在从添加数据更改为更新数据:
_handleUpdateAccount(id)
{
this.setState({
modalSubmitHandler:this._handleFormUpdateSubmit,
});
}
结果表单处理程序的输出在这里:
render(){
return(
<div>
<form onSubmit={(e)=>this.state.modalSubmitHandler(e)}>
...
问题是当我单击一些具有自身处理程序的表单元素时(图像清除...),我使组件重新呈现,并且表单onSubmit调用更新数据处理程序(_handleFormUpdateSubmit)。如何避免重新渲染后调用onSubmit函数?