問題タブ [redux-thunk]

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 投票する
2 に答える
35577 参照

reactjs - React-Redux: レデューサーの組み合わせ: 予期しないキー

Redux レデューサーの結合を開始する前に、私のアプリは正常に動作します。しかし、組み合わせると、initialState キーと reducer キーが混同されます。

これにより、機能が壊れ、次のコンソール エラーが発生します。

Unexpected keys "one", "two" found in initialState argument passed to createStore. Expected to find one of the known reducer keys instead: "events", "flash". Unexpected keys will be ignored.

私の初期状態は redux-thunk の助けを借りて渡されます。

レデューサーを正しく組み合わせるにはどうすればよいですか?

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

javascript - API を呼び出す redux アクションをテストする

この機能をテストする最良の方法は何ですか

これは私が現在持っているものです

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

javascript - redux が解決するのを待っている間にボタンを無効にする方法は?

次の例では、位置情報のリクエスト中にボタンを無効にするにはどうすればよいですか? this.props.inProgress が init に設定されていないため、getCurrentPosition が要求されたときにボタンを無効にし、RECEIVE_LOCATION が解決された場合に有効にしたいと考えています。正しいアプローチとは?状態を使用して小道具を GeoButton にコピーする必要がありますか?

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

javascript - 同形ReduxアプリはRedux-Thunkを登録していませんか?

奇妙なバグがあるようです。私は現在 Redux を同形で使用してredux-thunkおり、非同期アクションのミドルウェアとしても含めています。私のストア構成は次のようになります。

これについての奇妙な部分は、私のファイルがうまく適用されているので、このファイルに何か問題があるとは思わないということですcreateLogger。すべてのアクションと状態をログアウトしますが、アクション クリエーターでオブジェクトではなく関数を返すと、実行が失われます。私はdebuggerステートメントを投げてみましたが、ヒットすることはなく、ミドルウェアの並べ替えも役に立たないようです。

誰かが前にこのようなことを経験したことがありますか?

0 投票する
0 に答える
200 参照

reactjs - 明らかに複数レベルのネストされたアクションを設計し、それらをバッチ処理する

私のアプリのスライスのセットアップは次のようなものです:

アプライアンスは、1 つまたは複数のデータソースからデータを取得します。ユーザーは、1 つ以上のアプライアンスと対話します。現在、dataSources はリアルタイム データを提供します。このデータは、アプライアンスごとに一定の間隔でフェッチされてから表示されます。したがって、構造は次のように表示できます。

データ ソースが重複する場合があることに注意してください。つまり、2 層のように重なり合うデザインです。

現在、アクションは次のように設定されています (コードは構文的に 100% 正しいわけではありません - 単なる設計上の問題です)。

さて、これはまともなデザインですか?ここでいくつかの機能を見逃していると強く感じています。シナリオを考えると、アクションのネストは最善の方法ですか? ここで他の改善を行うことはできますか?

更新: ここで直面している問題の 1 つは、1 つ以上のfetchDataSourceRealtime呼び出しでフェッチ エラーが伝播することfetchApplianceRealtimeです。

今、私はこの問題を間違った視点から見ているだけだと感じています。

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

reactjs - Redux - ルートの状態ですべてをロードする理由

私は Redux を理解しようとしていますが、いくつかの問題があります。

私は、combineReducer の概念を理解しています。つまり ....

しかし、何千もの製品があり、製品ページでしか入手できない場合はどうなるでしょうか。ルートでロードする必要がある理由がわかりません。私にとって、これは、ユーザーが製品ページに移動しない限り、必要のないアプリの最初の起動を遅くします.

これはreduxの場合と同じですか?

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

redux - Redux + Microservices 相互通信へのアプローチ方法

外部APIサービスからオンデマンドで受注するオークションクラウドサービスを実装しています。受け取った各注文は、オークションに対して 1 対 1 で行われます。

1 日あたり 2000 件以上の注文 (オークション) を処理できます。マイクロサービス+ Reduxを使用して、注文とオークションを分離することにしました。

以下、各サービスの説明です。

外部 API

Enternal API は、注文を注文サービスにプッシュし、注文サービスからの更新を受信するWeb サイトにすぎません。これを制御することはできません。

オーダーサービス

Orders には、クライアント (モバイル アプリ) がオークションへの参加を決定するための情報を取得するために使用する一連の情報 (プロパティ) があります。たとえば、注文は次のようになります。

注文サービスでは、次のアクションを介してオークションが開始される前に、いつでもサーバーによって注文(アドレス、名前、openPrice、minPrice、ステータスなど) を更新できます。

オークションサービス

このサービスのオークション オブジェクトは次のようになります。

オークションは、次のアクションによって更新できます。

API サービス

フロントエンド アプリとマイクロサービスの間のゲートウェイとして機能します。クライアント (モバイル) からオーダー サービスまたはオークション サービスへの要求を受け取り、アクションの形でディスパッチします。

ワークフロー:

1 - LOAD_ORDERS を介して注文サービスへのその日の外部 APIプッシュ注文も、各注文のオークションを作成するために CREATE_AUCTIONS アクションがアクション サービスにディスパッチされます。

2 - ユーザーがモバイルアプリを開き、その日の注文のリストと注文サービスからのオープン価格を含む詳細を取得します。

3 - ユーザーが特定の注文に参加 - API サービスは、入札を行うビッダーエージェントを作成します。- API サービスは、JOIN_AUCTION を介して参加アクションを送信し、オークション サービスのオークションに参加します。

4 -競売人エージェントがオークションを開始し、入札が開始されます。

5 - 参加した入札者エージェントは、オークション サービスの PLACE_BID アクションを介して入札を開始します。

6 - オークションが終了すると、競売人エージェントは END_AUCTION をディスパッチしてオークションを終了します。

7 - オークションが終了すると、販売価格とオークションの詳細 (オブジェクト経由) がSET_ORDER_AUCTION 経由で注文サービスに送信されます。

8 - Order Serviceは SET_ORDER_AUCTION を処理し、最終的なsalePriceオークションオブジェクトで注文状態を更新してから、支払いを待ちます。

9 - クライアントから支払い情報を受け取ると、オーダー サービスによって外部サービスに送信されます。

私の質問は次のとおりです。

  • 上記のワークフローは、マイクロサービス + Redux を使用して各サービスの状態を更新するための合理的なアプローチですか?

  • redux マイクロサービスを使用する場合、マイクロサービスから別のマイクロサービスにアクションをディスパッチしても問題ありませんか? 私の質問は、マイクロサービス + イベント ソーシング + CQRS を使用する場合、サービス相互通信は推奨されず、代わりにイベントをコマンドに変換する中間サービスとして機能する Sagas を使用するためです。

  • 私のもう 1 つの質問は、ビジネス ロジック (検証) をどこに置くかということです。たとえば、オークションが開始されていないか、既に終了している場合、入札者は入札を送信できません。また、オークションに参加していない場合、入札者は入札を送信できません。このロジックを置くことでしたか?実際に、ミドルウェアまたはレデューサーですか? また、クライアントに返されるエラーを処理する方法は?

  • 一般的に、マイクロサービス + Redux に関するベスト プラクティスは何ですか?

  • Microservices + Redux vs Microservices + Event sourcing + CQRSを使用することの長所と短所は何ですか?

長い投稿で申し訳ありませんが、このトピックに関するドキュメントが見つからず、この権利に近づいているかどうかわからないため、ここでオリエンテーションが必要です。

アドバイスをいただければ幸いです!!!

0 投票する
2 に答える
2180 参照

reactjs - Redux & React-Router: 動的ルーターが機能しない

これは Alt.js で問題なく動作していたので、redux に切り替えました。私はreduxに頭を悩ませるのに本当に苦労しています。

エラー: 不変違反: オブジェクトは React の子として有効ではありません (検出: キー {id, doc…} を持つオブジェクト

ここに画像の説明を入力

私は使っている :

エラーが発生し、コンポーネントが表示されない理由を誰でも見ることができますか?





私が知っている多くのコードですが、データが表示されており、実際に問題を引き起こしているのは this.fetchRoutes() の { result } です。それがなければうまくいきますが、もちろんルートの 95% は行きます。

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

javascript - 反応ルーターでは、redux は機能しません

私は似たような質問をたくさん読みました,そして誰も私に合いませんでした.

this.props.children は常に親からコンテキストを継承するとは限りません

コンテキストまたは小道具のいずれかで「ストア」が見つかりませんでした

インデックス ファイル、プロバイダーにネストされたすべてのルート。

コンポーネント。this.propsをログに記録しましたが、dispatchプロパティはありません。また、 contextのパラメーターは空のオブジェクトです。

単純な質問かもしれませんが、かなり時間がかかりました。ありがとうございました!