【发布时间】:2015-04-20 22:09:03
【问题描述】:
通过阅读文档,我不太了解 Reflux 异步操作的工作原理。特别是当异步操作完成时,我需要触发一些东西。
在我的一个组件中,我想监听一个异步操作完成,然后转换到一个视图。
mixins: [State, Navigation, Reflux.listenerMixin],
componentDidMount() {
this.listenTo(actions.loadProject.completed, ()=>{this.transitionTo('info')});
},
我已经创建了这样的操作:
var actions = Reflux.createActions([
"someSyncAction",
"anotherSyncAction"
]);
actions.loadProject = Reflux.createAction({
"loadProject": {children: ['completed','failed']},
});
在我的 projectStore 我有这样的东西:
onLoadProject(id) {
var url = '/api/projects/' + id;
io.socket.get(url, (body, jwr) => {
if(jwr.statusCode !== 200){
console.error('Failed to load project', id, body);
return actions.loadProject.failed();
}
var p = body;
debug('loaded project', id, p);
this.project = p;
this.trigger(p);
actions.loadProject.completed();
});
},
但是看起来actions.loadProject.completed 不是一个函数,所以上面的代码是行不通的。正确的做法是什么?
【问题讨论】:
标签: javascript reactjs refluxjs