【发布时间】:2015-05-17 20:29:57
【问题描述】:
由于某种原因,每次我在我的 react 组件中触发一个动作时,与该动作关联的 store 方法都会触发两次。使用 Firefox 调试器,我注意到事件发射器似乎“发射”了两次动作,尽管事实上我只调用了一次动作(onClick)。
组件
var TodoHead = React.createClass({ 添加项目:函数(e){ var todo = this.refs.TodoInput.getDOMNode().value; TodoActions.addTodoItem(todo); // 表示待办事项对象/数组发生了变化 TodoActions.todoItemsChanged(); }, 删除项目:函数(){ TodoActions.removeItem(); TodoActions.todoItemsChanged(); }, 渲染:函数(){ 返回 ( // 触发上述方法 onClick 的按钮 ); } });回流商店
var todoItems = []; 变种 API = { addTodoItem:功能(项目){ 调试器; 如果(项目!=“”){ todoItems.push(item); } }, 删除待办事项:函数(){ todoItems.pop(); }, } var TodoStore = Reflux.createStore({ 初始化:函数(){ this.listenTo(TodoActions.addTodoItem,API.addTodoItem); this.listenTo(TodoActions.removeItem,API.removeTodoItem); }, 获取待办事项:函数(){ 返回待办事项; }, });反流动作
var TodoActions = Reflux.createActions([ '添加待办事项', '除去项目', 'todoItemsChanged' ]);如您所想,这对我来说确实是一根刺。我做错了什么?
任何答案将不胜感激!
【问题讨论】:
-
你能添加一个问题的 jsfiddle 吗?
标签: javascript reactjs refluxjs