react--modal弹框
编辑or添加用同一个modal框
需求:在同一个页面中点击添加和编辑用同一个modal框
思路:标记思维
1.点击添加弹出modal,创造判断条件,比如标记type=1
2.点击编辑,type=2
3.在modal的确定回调中判断,如果type为1,走添加的逻辑,type为2,走编辑的逻辑
showModal = () => {//点击添加的回调
this.add.current.show();//打开模态框
this.state.type = 1;//标记为1
};
onModife = (record, text, index) => {//点击编辑的回调
this.state.type = 2;//标记为2
this.add.current.show();
this.state.form = record;//点击编辑,列表内容回显到模态框中
//因为我的编辑按钮在column的render渲染函数中,所以逻辑写在此处
this.setState({ ...this.state.form });
};
onSubmit = async (callback) => {
let { form, type } = this.state;
const dataList = [...this.state.dataSource];
const valid = await this.formRef.current.validate();
if (valid) {
if (type === 1) {//如果type===1,走添加
dataList.push({ ...form, isAbled: 1 });
this.setState({ dataSource: dataList });
Message.success("添加成功!");
} else {//type===2,走修改
Message.success("修改成功!");
}
form = {//别忘记情况表单哦
NameCn: "",
NameEn: "",
Length: "",
};
this.setState({ form });
this.add.current.hide();//关闭模态框
}
callback();
};