element plus的validate和emits时使用扩展运算符传入类出现的bug
在vue3中,我用
reactive声明了一个属于form表单的state,我需要在提交时对其中的某些属性进行验证通过后调用emit方法提交数据到父组件,这时我对emit里面提交的数据做了如下处理:
const ok = (ruleFormRef: any | undefined) => { if (!ruleFormRef) return ruleFormRef?.validate((valid: any) => { if (valid) { // @ts-ignore emits('closeDialog', { ...state, id: props.info.id || null }) } else { return false } }) }
此时我发现element的这个验证方法会在调试中运行两次,第一次
valid返回为true,第二次返回为false,
经过排查发现不能对state使用扩展运算符,不然会发生这个问题,最好老老实实的构建一个类对象后放入数据集后提交,问题解决
积累小的知识,才能成就大的智慧,希望网上少一些复制多一些原创有用的答案