問題タブ [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.
angular - ngrx/effects でアクションをディスパッチしないと無限ループに陥る
Angular2 と ngrx/store および ngrx/effects を状態管理に使用しています。
@Effects()
特定のアクションが失敗したときにエラー メッセージを表示したいのですが、このタスクをブロックで実行できないようです。以下を参照してください。
上記のコードを実行すると、ブラウザーがクラッシュするまでアラートが無限に実行されます。新しいもの@Effect()
を返さdispatch()
なければならないようですが、理由がわかりません。上記の alert() が何度も実行されるのはなぜですか?
編集:私は複数回発送していません。SelectOfficeActions.LOAD_FAIL
1回だけ
angular - Angular 2 Async パイプは、Observable で新しい値をレンダリングしません
アプリで NgRx Store を使用しています。
Home.html
ホーム.ts
配列の項目を編集すると、非同期パイプはビューを更新しませんが、「配列」オブジェクトの値は正しいです (サブスクライブ内の console.log は更新された値を示します)。DOM のどこかをクリックすると (モーダルを開く、ボタンをクリックする...)、新しい値で更新が表示されます。
子コンポーネント「ngOnChanges」にもログインしましたが、新しい値で起動しません。
javascript - ngModules 間でサービスと状態を共有する方法
- ngModule間で ngrxを使用して状態を共有するにはどうすればよいですか?
- ngModule 間で同じサービス インスタンスを共有するにはどうすればよいですか?
Angular2-RC5.
angular - アクション/エフェクト UI 通知後の ngrx/store
ngrx/store と ngrx/effects を使用しています。
こういう流れです、
- ユーザーがログインボタンをクリック
- LOGIN アクションがディスパッチされました
- $effects は、ログイン用の http.post 資格情報を実行します
- LOGIN_SUCCESS または LOGIN_FAILURE アクションをディスパッチする
質問: アクションの後にモーダルをプルダウンしたり、エラー メッセージのポップアップを表示したりするなど、何らかの UI タスクを実行したいと考えています。
コンポーネントで応答をサブスクライブするにはどうすればよいですか?
みんなありがとう。
typescript - ngrx Reducer の状態フィールドの更新
私はこのようなタイプを持っています:
}
私のレデューサーでは、次のように定義された状態があります。
}
コンポーネントはこのドキュメントのフィールドを更新し、通常はノードを挿入または削除します。データは mongo db に保存され、db への読み取りと書き込みはサービスへの呼び出しを介して @Effect で行われます。
小さな変更があるたびにドキュメント全体を更新するのではなく、@addtoset などを使用します。したがって、@Effect は、セレクターと、変更が必要な特定のフィールドについて十分に認識している必要があります。
レデューサー関数で状態を設定する最良の方法は何ですか? 状態は監視可能であるため、変更はすべてのサブスクライバーに反映されます。オブジェクトにキーを追加すると、たとえば edit : {_id : thisid,...} @Effect 関数で、プロパティ 'edit' がタイプ Relation に存在しないという typescript エラーが発生します。
@Effect はデータを保存し、更新されたドキュメントを取得して、状態を更新する UPDATE_COMPLETE レデューサー関数にディスパッチします。
編集:明確にしようと思います。私の勘違い以外は特に問題ないかもしれません。しかし、ここに行きます。
状態をサブスクライブしています。リデューサーで状態が変更されると、コンポーネントとビューが更新されます。
私のバックエンド データ ストレージでは、コレクション内のドキュメントを更新するために、変更されたデータのみが必要です。
ノードとオントロジーは、コンポーネント内で頻繁かつ迅速に変更されます。単純に何かを追加したり、何かを削除したりします。ビューに変更をすばやく反映させたい。
したがって、コンポーネントでのアクション呼び出しは次のようになります。ここで、addNode はアクションをディスパッチする関数です。
アクション作成者は次のようになります。
@Effects は、データベース呼び出しが行われる場所です。
私の質問は、 toPayload が返すものは何ですか? レデューサーに設定された更新された状態を返しますか、それともアクションのペイロードを返しますか?
angular - ngrx/effects で if/else を行う方法は?
ngrx/エフェクトを使用しています。foo
店舗の状態に応じて異なるアクションを派遣したい。
これが私が今やっている方法です:
この投稿partition
でgroupBy
、、、if
のような RxJS 5 演算子を使用する方法はありcase
ますか? 今は正しく使えません。