問題タブ [ngrx]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
5318 参照

angular - ngrx/effects でアクションをディスパッチしないと無限ループに陥る

Angular2 と ngrx/store および ngrx/effects を状態管理に使用しています。

@Effects()特定のアクションが失敗したときにエラー メッセージを表示したいのですが、このタスクをブロックで実行できないようです。以下を参照してください。

上記のコードを実行すると、ブラウザーがクラッシュするまでアラートが無限に実行されます。新しいもの@Effect() 返さdispatch()なければならないようですが、理由がわかりません。上記の alert() が何度も実行されるのはなぜですか?

編集:私は複数回発送していません。SelectOfficeActions.LOAD_FAIL1回だけ

0 投票する
3 に答える
3879 参照

angular - Angular 2 Async パイプは、Observable で新しい値をレンダリングしません

アプリで NgRx Store を使用しています。

Home.html

ホーム.ts

配列の項目を編集すると、非同期パイプはビューを更新しませんが、「配列」オブジェクトの値は正しいです (サブスクライブ内の console.log は更新された値を示します)。DOM のどこかをクリックすると (モーダルを開く、ボタンをクリックする...)、新しい値で更新が表示されます。

子コンポーネント「ngOnChanges」にもログインしましたが、新しい値で起動しません。

0 投票する
1 に答える
759 参照

javascript - ngModules 間でサービスと状態を共有する方法

  1. ngModule間で ngrxを使用して状態を共有するにはどうすればよいですか?
  2. ngModule 間で同じサービス インスタンスを共有するにはどうすればよいですか?

Angular2-RC5.

0 投票する
1 に答える
3109 参照

angular - アクション/エフェクト UI 通知後の ngrx/store

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

こういう流れです、

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

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

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

みんなありがとう。

0 投票する
1 に答える
1520 参照

typescript - ngrx Reducer の状態フィールドの更新

私はこのようなタイプを持っています:

}

私のレデューサーでは、次のように定義された状態があります。

}

コンポーネントはこのドキュメントのフィールドを更新し、通常はノードを挿入または削除します。データは mongo db に保存され、db への読み取りと書き込みはサービスへの呼び出しを介して @Effect で行われます。

小さな変更があるたびにドキュメント全体を更新するのではなく、@addtoset などを使用します。したがって、@Effect は、セレクターと、変更が必要な特定のフィールドについて十分に認識している必要があります。

レデューサー関数で状態を設定する最良の方法は何ですか? 状態は監視可能であるため、変更はすべてのサブスクライバーに反映されます。オブジェクトにキーを追加すると、たとえば edit : {_id : thisid,...} @Effect 関数で、プロパティ 'edit' がタイプ Relation に存在しないという typescript エラーが発生します。

@Effect はデータを保存し、更新されたドキュメントを取得して、状態を更新する UPDATE_COMPLETE レデューサー関数にディスパッチします。

編集:明確にしようと思います。私の勘違い以外は特に問題ないかもしれません。しかし、ここに行きます。

状態をサブスクライブしています。リデューサーで状態が変更されると、コンポーネントとビューが更新されます。

私のバックエンド データ ストレージでは、コレクション内のドキュメントを更新するために、変更されたデータのみが必要です。

ノードとオントロジーは、コンポーネント内で頻繁かつ迅速に変更されます。単純に何かを追加したり、何かを削除したりします。ビューに変更をすばやく反映させたい。

したがって、コンポーネントでのアクション呼び出しは次のようになります。ここで、addNode はアクションをディスパッチする関数です。

アクション作成者は次のようになります。

@Effects は、データベース呼び出しが行われる場所です。

私の質問は、 toPayload が返すものは何ですか? レデューサーに設定された更新された状態を返しますか、それともアクションのペイロードを返しますか?

0 投票する
1 に答える
4852 参照

angular - ngrx/effects で if/else を行う方法は?

ngrx/エフェクトを使用しています。foo店舗の状態に応じて異なるアクションを派遣したい。

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

この投稿partitiongroupBy、、、ifのような RxJS 5 演算子を使用する方法はありcaseますか? 今は正しく使えません。