如何获取所有 Reflux 动作名称的列表以及所有这些动作的 preEmit 挂钩?
How to get a list of all Reflux actions names and a preEmit hook for all of them?
我知道使用 Reflux.__keep.createdActions
我得到了所有已创建操作的列表。有没有办法知道这些动作的名称?
有没有办法为所有操作定义一个 preEmit
挂钩?
重要说明: Reflux.__keep
实际上最初是为了支持另一个从未实现的功能而创建的。然而,它也在某些程序中造成内存泄漏。因此,最近默认不存储任何内容。要使其存储任何内容,您必须在最新版本的 reflux
和 reflux-core
中使用 Reflux.__keep.useKeep()
。 Reflux.__keep
不是 API 的记录部分,因此对它的更改不一定遵循语义版本控制。从 Reflux v5.0.2 开始,Reflux.__keep
需要 useKeep()
来存储任何东西。
关于问题:
1) 在 Reflux.__keep
中有一个 createdActions
属性,它是一个包含到目前为止所有创建的动作的数组(如果你当然做了 useKeep()
事情)。每个动作都应该有一个 actionName
属性 告诉你你在创建它时提供的动作名称:
Reflux.__keep.useKeep()
Reflux.createActions(['firstAction', 'secondAction']);
console.log(Reflux.__keep.createdActions[0].actionName) // <-- firstAction
console.log(Reflux.__keep.createdActions[1].actionName) // <-- secondAction
2) preEmit
挂钩可以在事后分配给操作,因此将它们分配给 Reflux.__keep.createdActions
内的操作将是一件简单的事情一个循环:
Reflux.__keep.useKeep()
var Actions = Reflux.createActions(['firstAction', 'secondAction']);
var total = Reflux.__keep.createdActions.length;
for (var i=0; i<total; i++) {
Reflux.__keep.createdActions[i].preEmit = function(arg) { console.log(arg); };
}
Actions.firstAction('Hello'); // <- preEmit outputs "Hello"
Actions.secondAction('World!'); // <- preEmit outputs "World!"
我知道使用 Reflux.__keep.createdActions
我得到了所有已创建操作的列表。有没有办法知道这些动作的名称?
有没有办法为所有操作定义一个 preEmit
挂钩?
重要说明: Reflux.__keep
实际上最初是为了支持另一个从未实现的功能而创建的。然而,它也在某些程序中造成内存泄漏。因此,最近默认不存储任何内容。要使其存储任何内容,您必须在最新版本的 reflux
和 reflux-core
中使用 Reflux.__keep.useKeep()
。 Reflux.__keep
不是 API 的记录部分,因此对它的更改不一定遵循语义版本控制。从 Reflux v5.0.2 开始,Reflux.__keep
需要 useKeep()
来存储任何东西。
关于问题:
1) 在 Reflux.__keep
中有一个 createdActions
属性,它是一个包含到目前为止所有创建的动作的数组(如果你当然做了 useKeep()
事情)。每个动作都应该有一个 actionName
属性 告诉你你在创建它时提供的动作名称:
Reflux.__keep.useKeep()
Reflux.createActions(['firstAction', 'secondAction']);
console.log(Reflux.__keep.createdActions[0].actionName) // <-- firstAction
console.log(Reflux.__keep.createdActions[1].actionName) // <-- secondAction
2) preEmit
挂钩可以在事后分配给操作,因此将它们分配给 Reflux.__keep.createdActions
内的操作将是一件简单的事情一个循环:
Reflux.__keep.useKeep()
var Actions = Reflux.createActions(['firstAction', 'secondAction']);
var total = Reflux.__keep.createdActions.length;
for (var i=0; i<total; i++) {
Reflux.__keep.createdActions[i].preEmit = function(arg) { console.log(arg); };
}
Actions.firstAction('Hello'); // <- preEmit outputs "Hello"
Actions.secondAction('World!'); // <- preEmit outputs "World!"