gpt4 book ai didi

javascript - redux(?) 请求的 $$typeof 属性缺失

转载 作者:行者123 更新时间:2023-12-02 21:57:43 26 4
gpt4 key购买 nike

我正在重构我的 redux 代码,并决定用枚举替换用作我的操作类型的字符串。我创建了一个这样的类:

class Enum {
constructor(enumObj) {

const handler = {
get: function(obj, prop) {
if (prop in obj) {
return obj[prop];
}
throw new Error(`${prop} is not a valid enum value for ${enumObj}`);
}
}
return new Proxy(Object.freeze(enumObj), handler)
}
}

export const ActionTypes = new Enum({
SOME_ACTION: 'SOME_ACTION',
ANOTHER_ACTION: 'ANOTHER_ACTION',
});

不幸的是,我的应用程序开始崩溃,并显示类似消息

Error: $$typeof is not a valid enum value for [object Object].

我绝对不会要求获取$$typeof。我对 ActionTypes 枚举所做的就是将其作为我分派(dispatch)消息的一部分,然后在我的化简器的 switch 语句中使用它。

我注意到,如果我通过向处理程序的 get 添加代码来处理这种情况,则我的应用程序可以正常工作,该代码返回 stringundefined if prop == '$$typeof'。我可以把它留在那里,但我想了解发生了什么。

我的问题是:

  • $$typeof 是什么?
  • 什么可能试图访问它以及为什么?

最佳答案

虽然这不是您问题的直接答案,但请注意 your action types should always be strings ,和you should not put non-serializable values like class instances into your actions 。我强烈建议您改回使用以前的方法。

作为相关点,请考虑使用 our new official Redux Toolkit package ,其中包括用于简化几个常见 Redux 用例的实用程序,包括存储设置、定义化简器、不可变更新逻辑,甚至一次创建整个状态“切片”。特别是,如果您使用 createSlice function ,它会自动生成操作类型和操作创建者,因此您不必手动编写它们。

关于javascript - redux(?) 请求的 $$typeof 属性缺失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59958440/

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