2016-07-29 3 views
0

У меня есть настройка полезной нагрузки в «действии», с целью отправки данных api в магазин. Но коммутатор не запускается внутри Dispatcher.register.реагировать Dispatcher.dispatch в действии, а не отправлять полезную нагрузку для хранения

Flux версия: "поток": "^ 2.1.1",

1) файл действия: (примечание: подтвердили, что receivedAllServices запускается с помощью отладчика)

"use strict" 

var Dispatcher = require('../dispatcher/appDispatcher'); 
// var requestActions = require('./requestActions'); 
var ActionTypes = require('../constants/actionTypes'); 

var ResponseActions = { 

    receivedAllServices: function(all_services){ 

     console.log('response received'); 
     debugger; 

     Dispatcher.dispatch({ 
      actionType: ActionTypes.RECEIVED_ALL_SERVICES, 
      services: all_servicess 
     }); 
    } 



}; 

module.exports = ResponseActions; 

2) Магазин (примечание: отладчик внутри магазина действие не срабатывает)

Dispatcher.register(function(action){ 
    switch(action.actionType){ 
     case ActionTypes.RECEIVED_ALL_SERVICES: 

      debugger; 

      // AuthorStore.emitChange(); 
      break; 
    } 
}); 

3) Диспетчер файлов:

var Dispatcher = require('flux').Dispatcher; 

module.exports = new Dispatcher(); 

4) actionTypes.js файлу

"use strict" 

var keyMirror = require('fbjs/lib/keyMirror'); 

module.exports = keyMirror({ 
    RECEIVED_ALL_SERVICES: null, 
}); 

ответ

0

Хм, это странно. Все выглядит правильно. Можете ли вы проверить, что Dispatcher в store.js и action.js - это те же объекты?

См. Ниже короткий пример с тем же действием/магазином. Все работает правильно (нажмите run и посмотрите на выход консоли).

var appDispatcher = new Flux.Dispatcher(); 
 

 
// This code should be our action 
 
function receivedAllServices() { 
 
    appDispatcher.dispatch({ 
 
    actionType: 'RECEIVED_ALL_SERVICES', 
 
    services: ['serv1','serv2'], 
 
    }); 
 
    console.log('Done'); 
 
} 
 

 

 
// This code should be our store 
 
appDispatcher.register(action => { 
 
    console.log('action', action); 
 
    switch(action.actionType){ 
 
    case 'RECEIVED_ALL_SERVICES': 
 
     //debugger; 
 
     // AuthorStore.emitChange(); 
 
     console.log('AuthorStore.emitChange'); 
 
     break; 
 
    } 
 
}); 
 

 
// Call the action 
 
receivedAllServices();
<script src="https://cdnjs.cloudflare.com/ajax/libs/flux/2.1.1/Flux.js"></script>