問題タブ [redux-store]

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

reactjs - 異常な redux ストア構成と保護されたルート

研究目的で使用しているreact-reduxプロジェクトについてヘリが必要です: https://github.com/arshdkhn1/ecommerce-site-template

私が理解していないのは、還元ストアがどのように提供されているかです。

configureStore.js ファイルを確認できますが、プロジェクト全体で参照されていません。何か不足していますか?

実際、このチュートリアルのように保護されたルートを作成しようとしているので、それがどのように機能するかを理解する必要があります : https://github.com/Remchi/reddice/blob/master/client/utils/requireAuth.js高次コンポーネントを作成し、react-redux の connect 関数を使用します。残念ながら、次のエラーが表示されます。

ここに画像の説明を入力

おそらく、redux ストアの構成方法/場所が原因です。

何が起こっているのか、このストアがどのように機能しているか、プロジェクトのプライベート ルートを作成する方法を説明してもらえますか?

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

javascript - 現在のストアに基づく Redux アクションのベスト プラクティス

Reduxストアの現在の状態に基づいてアクションをディスパッチするための推奨事項を解決しようとしていますが、うまくいきませんでした。

ログイン時に、現在のユーザーの ID が に保存される設定がありますauth.currentUser

に保存されているユーザーの詳細も個別に持っていますusers[id]

loadUser(id)まず、ユーザーの詳細が既に利用可能な場合、アクションの作成者が API 呼び出しを行わないようにしたいと思います。次に、loadCurrentUser()保存されている現在のユーザー ID に基づいてユーザーを取得するための呼び出しを行うアクション クリエーターが必要です。

これを行う最善の方法は何ですか?redux thunk を使用して比較的簡単に実行できることはわかっていますが、それが最善ですか、それともより良い方法がありますか? これまでのところ、私はそれを使用することを避けてきました。代わりに、非同期アクションに redux promise ミドルウェアを使用しています。

編集:やりたいことを明確にする。

コンポーネントがロードされるときに、現在のユーザーの詳細がロードされていることを確認する必要があります。loadCurrentUser()発送されるように配線することでこれを行います。

まず、このアクションでは、ストアの別の場所に保存されている ID に基づいてユーザーを読み込む必要があります。次に、その ID を持つこのユーザーがまだストアにいない場合にのみ、これを行う必要があります。

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

react-native - Detox Testing で redux ストアの初期状態を読み込む

問題

非常に複雑なアプリケーションがあり、各テスト ケースでプロセス全体を実行して特定の画面に移動してテストする必要はありません。代わりに、状態が redux ストアに保存されている特定の画面にジャンプしたいだけです。


私が試し

たのは、特定の画面をロードする複数の初期状態を作成して直接テストできるようにし、デトックス テストの実行ごとに異なる mocha.opts をロードしてテスト ケースのこの部分を選択し、「react-native-config」を使用したことです。実行ごとに異なる状態をロードできるため、たとえば画面をロードするには、次のようにします。

  1. 現在テストしている画面のすべての詳細を含む redux ストアの initialState を作成します。
  2. -f フラグを指定して、このテスト ケースのみを実行する mocha.opts を作成します。
  3. 選択した ENVFILE に従ってどの初期状態をロードするかをストアに伝える .env.test.screenX ファイルを作成します。
  4. detox の各画面に異なる構成を作成して、detox CLI を介して正しい mocha opts をロードできるようにします。
  5. コマンド ENVFILE=env.test.screenX react-native run-ios を実行するたびに、この構成を使用してプロジェクトがビルドされ、デトックス テスト -c を実行できます。

質問

私の方法は非常に複雑で、各画面でテストを実行するために多くのセットアップとオーバーヘッドが必要になるため、同じ問題が発生したかどうか、どうすれば解決できるか疑問に思っていました。一般に、デトックスで反応するネイティブスレッドをどのように処理できますか?