나는 Facebook의 Flux 아키텍처를 배우기 시작했다. 간단한 로그인 화면을 만들려고합니다. 나는 flux-chat 샘플 앱을 따라 화면을 만들었다. ServerActionCreator와 WebAPIUtils 사이의 순환 종속성 문제가 있습니다. 아래 코드를 참조하십시오.Flux architecture circular dependency
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);
}
}
당신이 ServerActionCreator이 WebAPIUtils 및 WebAPIUtils에 따라 볼 수 있듯이 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는 빈 객체가되어 ServerActionCreator의 loginSubmit 함수가 호출되면 "정의되지 않은 함수가 아닙니다."라는 오류가 발생합니다. 아래 스크린 샷.
이 시나리오를 처리하는 방법? 또는 다른 대안이 있습니까? 어떤 도움이라도 대단히 감사합니다.
로그인 작업은 서버 요청을 암시하므로 나는 ServerActionCreator에 있어야한다는 인상하에있었습니다. 어쨌든, 나는 두 번째 해결책을 사용했고 제대로 작동합니다. 당신의 도움을 주셔서 감사합니다. –