2016-07-29 37 views
0

Ich habe Payload in "Aktion" eingerichtet, mit der Absicht, API-Daten an den Laden zu senden. Aber Switch-Fall wird nicht innerhalb Dispatcher.register ausgelöst.reagieren Dispatcher.dispatch in Aktion, nicht zum Senden von Payload zu speichern

Flux-Version: "Fluss": "^ 2.1.1",

1) Aktionsdatei: (Anmerkung: hat bestätigt, dass 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; 
unter Verwendung Debugger) ausgelöst Shop

2) (: nicht ausgelöst Debugger innerhalb speichern Aktion Anmerkung)

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

      debugger; 

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

3) Dispatcher-Datei:

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

module.exports = new Dispatcher(); 

4) actionTypes.js Datei

"use strict" 

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

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

Antwort

0

Hm, es ist seltsam. Alles sieht korrekt aus. Können Sie überprüfen, ob in store.js und action.js identische Objekte sind?

Siehe unten das kurze Beispiel mit der gleichen Aktion/Speicher. Alles funktioniert korrekt (drücken Sie run und sehen Sie den Konsolenausgang).

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>