我想更改表单提交处理程序,这取决于我的活动:添加数据(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函数?