错误示范
class FormDraft 中有一个函数
实例化的时候把实例化对象存到状态管理的某个地方
在状态管理中调用之前存的实例化的对象时报错
【未捕获的类型错误:无法从类未声明的对象中读取私有成员#isAutoSaveEnabled】
debugger可以看到报错的属性是有的,但是实例变成了一个代理对象
解决方法
使用vue的toRaw()方法,获取代理的原始对象,使用原始对象才能正确调用
import { toRaw } from 'vue'
// 清除自动草稿保存
const formDraftInstances = this.getCurrentTab(rmTargetName)?.formDraftInstances
if (formDraftInstances) {
for (const formDraft of [...formDraftInstances.values()]) {
// formDraft.disableAutoSave()
// 拿到代理的原始对象才能正确调用
toRaw(formDraft).disableAutoSave()
}
}