2016-12-09 10 views

ответ

1

Важное примечание:Reflux.__keep был на самом деле изначально создан для поддержки еще одна особенность, которая никогда не материализовались. Однако это также создавало утечки памяти в некоторых программах. Поэтому недавно было сделано НЕ хранить ничего по умолчанию. Чтобы он хранил все, что вам нужно использовать Reflux.__keep.useKeep() в последних версиях reflux и reflux-core. Reflux.__keep не является документированной частью API, и поэтому такие изменения в нем не обязательно должны следовать семантическому управлению версиями. Из v5.0.2 Reflux вперед useKeep() необходим для Reflux.__keep, чтобы сохранить что-либо.

к вопросу, хотя:


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!"