ES6 proxy

127 阅读1分钟

设置代理时报错

报错信息
'set' on proxy: trap returned falsish for property 'name'

//vue3 环境下
const person01 = reactive({
    name: "12345",
    testObj: {
        key1: "1",
        key2: "2",
        key3: "3",
    }
})

// 设置了一个person01的代理
let personProxy01 = new Proxy(person01, {
    get(target,key){
        // console.log('get方法被拦截。。。 实现原理为通过属性的getter驱动函数调用该方法');
        return target[key];
    },
    set(target,key,value){
        // console.log('set方法被拦截。。。实现原理为通过属性的setter驱动函数调用该方法');
        target[key]=value;
        //return true
    }
})
personProxy01.name='ookk'

解決办法

定义 Proxy 代理对象的 set 的时候, 要返回 return true 。