2016-09-29 13 views
4

私はngrx/effectsを使用しています。空のアクションをディスパッチする方法は?

空のアクションをディスパッチするにはどうすればよいですか?

@Effect() foo$ = this.actions$ 
    .ofType(Actions.FOO) 
    .withLatestFrom(this.store, (action, state) => ({ action, state })) 
    .map(({ action, state }) => { 
     if (state.foo.isCool) { 
     return { type: Actions.BAR }; 
     } else { 
     return { type: 'NOT_EXIST' }; 
     } 
    }); 

私はアクションを返す必要があるので、私はreturn { type: 'NOT_EXIST' };を使用しています:

これは私が今やっている方法です。

これを行うより良い方法はありますか?

答えて

5

私は同様の未知のアクションを使用しましたが、通常はレデューサーの単体テストのコンテキストで使用しました。

エフェクトで同じことをやって不安を感じている場合は、条件付きで代わりmergeMapObservable.of()Observable.empty()を使用してアクションを発することができます:

@Effect() foo$ = this.actions$ 
    .ofType(ChatActions.FOO) 
    .withLatestFrom(this.store, (action, state) => ({ action, state })) 
    .mergeMap(({ action, state }) => { 
    if (state.foo.isCool) { 
     return Observable.of({ type: Actions.BAR }); 
    } else { 
     return Observable.empty(); 
    } 
    }); 
+0

おかげで、それは良い方法です:) –

関連する問題