如何在react

时间:2018-07-16 20:37:58

标签: javascript reactjs forms render

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

0 个答案:

没有答案