0

私は、webpackでrefluxjs/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() {
        ....
    }
    ...
});

したがって、ユーザーが変更を行うと、ストア内の履歴書変数が更新されます。ここで、ユーザーは変更を保存したいので、トリガーするボタンを押しますAction.save()resumeここに私の問題があります:ストアからservice上記のファイルに変数を渡すにはどうすればよいですか?

奇妙なことvar Store = require('stores/ResumeStore'); に、serviceファイルで行うと、値が になりますobject {}。これは、ストアをサービスに含めた場合にのみ発生します。これは、必要な無限ループなどと関係があると思います。( ストアにはアクションが必要、アクションにはサービスが必要、サービスにはストアが必要)

4

1 に答える 1

0

ResumeService の save メソッドに履歴書をパラメーターとして追加してみませんか?

module.exports = {
    save: function(resume) {
        return http.post(ENDPOINT + 'save', {
            resume: resume
        });
    },
}

その後、ResumeActions.save.listenAndPromise(ResumeService.save);動作するはずです。listenAndPromise は、アクション ペイロードをコールバック引数に渡すだけです。

于 2015-07-02T09:18:40.457 に答える