Я начал изучать архитектуру Flux в Facebook. Я пытаюсь сделать простой экран входа. Я выполнил пример приложения flux-chat, чтобы создать экран. У меня проблема циклической зависимости между ServerActionCreator и WebAPIUtils. См. Код ниже.Круговая зависимость архитектуры потока
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);
}
};
Как вы можете видеть ServerActionCreator зависит от WebAPIUtils и WebAPIUtils зависит ServerActionCreator.
Я думаю, из-за круговой зависимости WebAPIUtils становится пустым объектом, и я вызываю ошибку «undefined is not a function» при вызове функции loginSubmit в ServerActionCreator. Снимок экрана ниже.
Как обрабатывать этот сценарий? или Есть ли альтернативный способ? Буду признателен за любую оказанную помощь.
Поскольку действие входа подразумевает запрос сервера, у меня создалось впечатление, что оно должно быть в ServerActionCreator. В любом случае, я использовал свое второе решение, и он работает нормально. Спасибо за вашу помощь. –