gpt4 book ai didi

javascript - 类型错误 : 'set' on proxy: trap returned falsish for property

转载 作者:行者123 更新时间:2023-12-04 13:03:34 29 4
gpt4 key购买 nike

我将代码从 es5 类原型(prototype)表示更改为 es6 类表示。但我收到错误

这是迁移到 es6 前后的代码

es5 语法

function RoutingScreen (context) {
Object.assign(this, {route} = context)
}

RoutingScreen.prototype.onEnter = function(state) {
state.scaning = false
state.status = 'Scan to continue'
curState = states.init
};

es6 语法
class RoutingScreen{
constructor(context){
Object.assign(this, {route}= context)
}

onEnter(state){
state.scaning = false
state.status = 'Scan to continue'
curState = states.init
}
}

我收到这样的错误

TypeError: 'set' on proxy: trap returned falsish for property 'scaning'



但 es5 代码工作正常。

我正在使用 Node 版本 8.1

我不知道我在这里做错了什么。

这就是我调用这些方法的地方
    function setRoute (newRoute) {
var r = currentRoute()
console.log('changeRoute from ' + (r?r.route:'""') + ' to ' + newRoute)
if (r && r.route == newRoute) {
return true
}
if (!r || !r.onExit || r.onExit(state) !== false) {
stateStack.pop()
}
r = newRoute ? pushRoute(newRoute) : currentRoute()
state.session.route = r.route


return !r.onEnter || r.onEnter(state)

}

最佳答案

在我正在阅读 JavaScript Ninja 书的一个使用代理对象的示例中,我遇到了同样的问题......当我尝试编写一个 set 方法时。

set: (target, key, value) => {
target[key] = value;
}
这会在严格模式下引发 TypeError:

Uncaught TypeError: 'set' on proxy: trap returned falsish for property


由于它返回“虚假”,我通过使用以下方法返回 true 来修复它:
set: (target, key, value) => {
target[key] = value;
return true;
}

关于javascript - 类型错误 : 'set' on proxy: trap returned falsish for property,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45810904/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com