Ich habe angefangen, Facebooks Flux-Architektur zu lernen. Ich versuche einen einfachen Anmeldebildschirm zu erstellen. Ich habe die Beispielanwendung flux-chat verfolgt, um den Bildschirm zu erstellen. Ich habe ein Problem der zirkulären Abhängigkeit zwischen ServerActionCreator und WebAPIUtils. Bitte beachten Sie den folgenden Code.Flux Architektur Kreisabhängigkeit
ServerActionCreator.js
var AppDispatcher = require('../dispatcher/AppDispatcher');
var Constants = require('../constants/Constants');
var WebAPIUtils = require('../utils/WebAPIUtils');
var ActionTypes = Constants.ActionTypes;
module.exports = {
receiveLoginStatus: function(status){
AppDispatcher.handleServerAction({
type: ActionTypes.RECEIVE_LOGIN_STATUS,
status: status
});
},
loginSubmit: function(data){
WebAPIUtils.login(data);
}
}
WebAPIUtils.js
var ServerActionCreator = require('../actions/ServerActionCreator');
module.exports = {
login: function (data) {
//Mock server API call
var status = JSON.parse('{"status":"success"}');
ServerActionCreator.receiveLoginStatus(status);
}
};
Wie Sie ServerActionCreator hängt von WebAPIUtils und WebAPIUtils hängt ServerActionCreator sehen können.
Ich denke, aufgrund der zirkulären Abhängigkeit wird WebAPIUtils ein leeres Objekt und ich bekomme "undefined ist keine Funktion" Fehler, wenn LoginSubmit-Funktion in ServerActionCreator aufgerufen wird. Screenshot unten.
Wie dieses Szenario behandeln? oder Gibt es einen alternativen Weg? Jede Hilfe wird sehr geschätzt.
Da die Login-Aktion eine Server-Anfrage initiiert habe, hatte ich den Eindruck, dass es in ServerActionCreator sein muss. Wie auch immer, ich habe Ihre zweite Lösung verwendet und es funktioniert gut. Danke für Ihre Hilfe. –