0
我是新的反應/通量架構,我錯過了一些東西......我想。我有兩個Stores,SubjectsStore.js和WorkDoneStore.js,它們具有派遣的AppActions(代碼片段全部在下面)。我覺得任何向AppDispatcher註冊的商店都會收到有關該事件的通知,並且每個商店都有義務處理正確的操作類型。似乎沒有任何其他方式來控制哪個Store被調用。就我而言,我已經獲得一個SubjectStores註冊被調用,但我的WorkDoneStore沒有被調用。我忽略了什麼/做錯了什麼。隨着助焊劑,我如何得到正確的商店
AppActions.js
import AppDispatcher from './AppDispatcher.js';
import WorkDoneConstants from '../constants/WorkDoneConstants.js';
import SubjectConstants from '../constants/SubjectConstants.js';
var AppActions = {
addWorkDoneItem:function(item){
console.log("In app actions addWorkDone");
console.log(WorkDoneConstants.WORKDONE_INSERT);
AppDispatcher.dispatch({
actionType:WorkDoneConstants.WORKDONE_INSERT,
item:item
})
}
}
module.exports = AppActions;
SubjectsStore.js
var AppDispatcher = require('../dispatcher/AppDispatcher');
var SubjectConstants = require('../constants/SubjectConstants');
var EventEmitter = require('events').EventEmitter;
...
AppDispatcher.register(function(action) {
var text;
console.log("why am I in the subjectStore?");
console.log(action.actionType);
console.log(action.item);
switch(action.actionType) {
case SubjectConstants.SUBJECT_CREATE:
text = action.text.trim();
...
WorkDoneStore.js
...
AppDispatcher.register(function(action) {
var text;
console.log("In WorkDoneStore");
console.log(action);
switch(action.actionType) {
case WorkDoneConstants.WORKDONE_INSERT:
item = action.item;
if (item.subject !== '') {
create(item);
WorkDoneStore.emitChange();
}
break;
...
我的組件
...
handleSubmit: function(e){
e.preventDefault();
var item = {
subject:this.state.subject,
workDone:this.state.workDone,
minutes:this.state.totalMinutes,
startStop:this.state.startStop,
};
console.log("before AppActions.");
AppActions.addWorkDoneItem(item);
},
...
如果這解決了您的問題,您應該點擊答案旁邊的複選標記。這讓其他人知道這個問題得到了回答,並且正確答案是什麼。 –