Javascript redux(?)及其'请求的$$typeof属性;她失踪了
我正在重构我的redux代码,我决定用一个枚举替换作为我的操作类型的字符串。我创建了这样一个类:Javascript redux(?)及其'请求的$$typeof属性;她失踪了,javascript,redux,enums,typeof,Javascript,Redux,Enums,Typeof,我正在重构我的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
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',
});
不幸的是,我的应用程序已开始崩溃,出现如下消息
错误:$$typeof不是[object]的有效枚举值
我绝对不是要求获得$$typeof
。我对ActionTypes
enum所做的只是将其作为已调度消息的一部分,然后在我的reducer中的switch语句中使用它
我注意到,如果我通过向处理程序的get
添加一个返回string
或undefined
ifprop='$$typeof'
的代码来处理这种情况,我的应用程序就可以正常工作。我可以把它放在那里,但我想知道发生了什么
我的问题是:
- 什么是
$$typeof
- 什么可能试图访问它,为什么
- 虽然这不是对您问题的直接回答,但请注意,以及。我强烈建议您重新使用前面的方法
作为一个相关点,请研究使用,其中包括简化几个常见Redux用例的实用程序,包括存储设置、定义缩减器、不可变更新逻辑,甚至一次创建整个状态“切片”。特别是,如果您使用,它会自动生成动作类型和动作创建者,这样您就不必手动编写它们。如果我理解正确,可以使用
ActionTypes。在dispatch
中的一些动作
我实际上使用的是一个以奇特方式获取的字符串。我不会传递枚举实例。