【发布时间】:2015-09-07 06:41:07
【问题描述】:
我刚开始在 webpack 中使用回流js/react。我真的很喜欢listenAndPromise 异步模式,但是我遇到了一个问题。我得到以下代码:
行动:
var ResumeService = require('services/ResumeService');
var ResumeActions = Reflux.createActions({
'save': {
asyncResult: true
}
});
ResumeActions.save.listenAndPromise(ResumeService.save);
简历服务:
var http = require('utils/http');
var ENDPOINT = '/resumes/';
module.exports = {
save: function() {
return http.post(ENDPOINT + 'save', {
resume: ??????????
});
},
}
还有部分店铺:
var RendererActions = require('actions/RendererActions');
var ResumeStore = Reflux.createStore({
listenables: [ResumeActions],
resume: Immutable.fromJS(ResumeExample), //nested object
onSaveCompleted: function(id) {
.....
},
onSaveFailed: function() {
....
}
...
});
因此,当用户进行更改时,商店中的 resume 变量就会更新。现在用户想要保存更改并且他点击了触发Action.save() 的按钮。我的问题来了:如何将 resume 变量从商店传递到上面的 service 文件?
奇怪的是,如果我在service 文件中执行var Store = require('stores/ResumeStore');,它的值是object {},这只有在我将商店包含在服务中时才会发生,我认为它与无尽有关循环要求或类似的东西。 (Store需要Action,Action需要Service,Service需要Store)
【问题讨论】:
标签: javascript asynchronous reactjs reactjs-flux refluxjs