6

ngrx/store と ngrx/effects を使用しています。

こういう流れです、

  1. ユーザーがログインボタンをクリック
  2. LOGIN アクションがディスパッチされました
  3. $effects は、ログイン用の http.post 資格情報を実行します
  4. LOGIN_SUCCESS または LOGIN_FAILURE アクションをディスパッチする

質問: アクションの後にモーダルをプルダウンしたり、エラー メッセージのポップアップを表示したりするなど、何らかの UI タスクを実行したいと考えています。

コンポーネントで応答をサブスクライブするにはどうすればよいですか?

みんなありがとう。

4

1 に答える 1

4

状態には、アクションを実行する必要があることをコンポーネントに通知するフラグが必要です。

このようなもの:

州:

const initialState: SomeState = {
    loggedIn: false,
    ...
};

export default function(state = initialState, action: Action): SomeState {
    switch (action.type) {
        case StateActions.LOGIN_SUCCESS:
            return Object.assign({}, state, {loggedIn: true});
            ...

次に、コンポーネントで状態をサブスクライブし、loggedIntrue の場合は、たとえばモーダルを表示する必要があることを知っています。

もう 1 つのアプローチは、サービスを介して自分の効果でタスクを実行することです。

于 2016-08-27T18:56:51.637 に答える