我刚开始使用refluxjs/react和webpack。我真的很喜欢listenAndPromise异步模式,但我遇到了一个问题。我得到了以下代码:
操作:
var ResumeService = require('services/ResumeService');
var ResumeActions = Reflux.createActions({
'save': {
asyncResult: true
}
});
ResumeActions.save.listenAndPromise(ResumeService.save);ResumeService:
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() {
....
}
...
});因此,当用户进行更改时,存储中的简历变量就会更新。现在,用户想要保存更改,他点击了一个触发Action.save()的按钮。我的问题来了:如何将存储中的resume变量传递给上面的service文件?
奇怪的是,如果我在service文件中执行var Store = require('stores/ResumeStore');,它的值是object {},只有当我在服务中包含商店时才会发生这种情况,我认为这与无休止的循环要求或类似的东西有关。(存储需要操作,操作需要服务,服务需要存储)
发布于 2015-07-02 17:18:40
为什么不直接将简历作为参数添加到ResumeService的保存方法中呢?
module.exports = {
save: function(resume) {
return http.post(ENDPOINT + 'save', {
resume: resume
});
},
}那么ResumeActions.save.listenAndPromise(ResumeService.save);应该可以工作了。listenAndPromise只是将操作有效负载传递给它的回调参数。
https://stackoverflow.com/questions/30969345
复制相似问题