新增 dispatcher.js
檔案,並在 TodoStore.js
裡註冊 dispatcher
import { Dispatcher } from "flux";
export default new Dispatcher;
在 TodoStore.js
裡,可以使用 .dispatch
來觸發 action,在這邊我們要使用 .register
來註冊
dispatcher.register(todoStore.handleActions.bind(todoStore));
我們需要一個 handle actions 來幫我們監聽所有的一舉一動,撰寫 handleActions function
handleActions(action) {
switch(action.type) {
case "CREATE_TODO": {
this.createTodo(action.text);
break;
}
case "RECEIVE_TODOS": {
this.todos = action.todos;
this.emit("change");
break;
}
}
}
依樣可以透過 switch...case 來定義不同的 action.type
對應不同的結果。以上程式表示,當 action type
等於 CREATE_TODO 的時候 .createTodo
;當 action type
等於 RECEIVE_TODOS 的時候 .emit