10

react.js の waitFor 関数を使用しようとしていますが、何か間違っているようです。

私がやりたいことは、基本的に、店がいっぱいになるのを待ってから、別の店から呼び出すことです。1.1号店にトークンを登録

RipplelinesStore.dispatcherIndex= Dispatcher.register(function(payload) {
    var action = payload.action;
    var result;

    switch(action.actionType) {

         case Constants.ActionTypes.ASK_RIPPLELINES:    
            registerAccount(action.result); 
            RipplelinesStore.emitChange(action.result);         
            break;
    }

});

2.他店での待ち合わせを書く

Dispatcher.register(function(payload) {
    var action = payload.action;
    var result;

    switch(action.actionType) {
        case Constants.ActionTypes.ASK_RIPPLEACCOUNTOVERVIEW:
            console.log("overviewstore",payload);
            Dispatcher.waitFor([
                RipplelinesStore.dispatcherIndex,
            ]);

            RippleaccountoverviewsStore.test= RipplelinesStore.getAll();
            console.log(RippleaccountoverviewsStore.test);

            break;
    }

    return true;
});

残念ながら、私の getall() メソッドは空のオブジェクトを返します (getAll() は適切に記述されています)。そのため、waitFor ディスパッチャー関数が機能していないようです。

基本的には、最初のストアがまだサーバーから回答を受け取っているためだとわかっていますが、waitFor はそれがフェッチされるのを待つと思っていました。

どんな手掛かり ?ありがとう!

編集: 最初のストア フェッチを tha のように起動します。私が理解していないのは、バックボーンコレクションがフェッチされたらロードをディスパッチしていることです (私は約束で成功したときにディスパッチします...)

ripplelinescollection.createLinesList(toresolve.toJSON()).then(function() { 
            Dispatcher.handleViewAction({
                actionType: Constants.ActionTypes.ASK_RIPPLELINES,
                result: ripplelinescollection
            });
        }); 

また、呼び出されることのないアクションに waitfor をバインドしようとしましたが、他のストアはまだ待機していません! 変 !

4

1 に答える 1

9

サーバーからの非同期フェッチに問題があるようです。waitFor はこのように動作するはずがありません。データがサーバーから受信されるとすぐにトリガーされる別のアクションを導入する必要があります。

この回答をご覧ください: https://stackoverflow.com/a/27797444/1717588

于 2015-02-23T16:57:41.143 に答える