关键代码:onSubmit={((values, record) => { this.handleSubmit(values, record, modalType) })}
利用闭包完成自定义参数传递的同时,又不覆盖函数的2个默认参数
// 提交
handleSubmit = async (values, record, type) => {
// 默认的参数是values, record两个 新增的是type参数
console.log('????', values, record, type)
const { dispatch } = this.props;
const params = record.id ? { ...values, menuId: record.id } : values;
await dispatch({ type: `menu/${type}`, payload: params });
}
render() {
省略参数定义,仅提供思路
return (
<CustomModal
renderTitle={() => {
if (modalType === 'addMenu') {
return `新增${this.typeText}`;
} else if (modalType === 'updateMenu') {
return `编辑${this.typeText}`;
}
}}
record={record}
visible={visible}
onCancel={this.closeModal}
onSubmit={((values, record) => { this.handleSubmit(values, record, modalType) })} // 利用闭包,将自定义参数传递过去
>
<CustomForm formList={menuForm(menuGroupTree)} />
</CustomModal>
)
}