vue3 + elementui Plus 问题记录
第一章 表单重置resetFields方法不生效
问题:
做项目的时候, dialog组件嵌套from表单, resetFields 重置无效:
1.先点击了 「修改」,弹出弹窗,此时弹窗的el-form表单已经赋值;
2.再点击新增按钮,弹出弹窗,已经有之前修改的值,此时调用resetFields()方法不能使el-form清空的;
(如果先点击 「新增」, 关闭后再点击「修改」就可以)
解决:
当我们打开对话框时,我们已经赋值完毕了,所以使用resetFields会重置到赋完值的状态
// 方案一:
async function openDialog (type: string, row: any) {
isShowDialog = true;
diaType = type;
if (type === 'edit') {
diaObj.title = '修改';
const editFormObj = JSON.parse( JSON.stringify( row) );
//重点
await nextTick();
dataObj.addForm = editFormObj;
}
// 方案二:
const openDialog = (type: string, row: any) => {
isShowDialog = true;
diaType = type;
if (type === 'edit') {
diaObj.title = '修改';
const editFormObj = JSON.parse( JSON.stringify( row) );
//重点
nextTick( () => {
dataObj.addForm = editFormObj;
});
}
之后resetFields 就是初始默认的值……