我想更改表单提交处理程序,这取决于我的活动:添加数据(this._handleFormSubmit)或更新数据(this._handleFormUpdateSubmit)我有以下反应组件的构造函数,它采用初始提交处理程序来添加数据:
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函数?