問題タブ [redux-persist]
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.
reactjs - ストア データを取得し、外部コンポーネントをディスパッチ ネイティブに反応させる
redux ストア データにアクセスし、react コンポーネントの外側の関数をディスパッチする必要があります (utils 関数内)。
React Native、Redux、Redux Saga、Redux Persist を使用しています。私の設定ストアファイルは以下のようなものです:
ユーザーのログイン後、ユーザー情報と oath2 トークンを redux のユーザー レデューサーに保存し、それを Redux Persist で保持します。App.js は以下のコードのようなものです:
ここで、api.js でユーザー トークンにアクセスする必要があります。各axiosリクエストの前に、oauth2トークンの有効期限を確認する必要があります。axiosがリクエストを送信する前に、setHeader関数を呼び出します。api.js の私のコードは以下のようなものです:
setHeader関数console.logを呼び出すと、reduxストアデータを表示する代わりにストアが空になります。誰でも助けることができますか?
reactjs - テストを終了する前に Redux Persist が再水和するのを待つ方法
次のコードがあります。
redux-persist を使用して状態を再水和します。これが完了する前に、loading プロパティにあるものを表示します。私はJestテストを持っています(箱から出してすぐに反応ネイティブに付属するデフォルトのものです):
しかし、テストはパスしましたが、まだ実行されているアクションとpersist/PERSIST
、persist/REHYDRATE
テストでコンソールに出力された値 (レンダリングされた出力) は次のとおりです。
私がやりたいことは、redux-persist がハイドレーションを完了するまで待ってから、レンダリングされた値を確認することです。これどうやってするの?
reactjs - カスタムミドルウェアで redux-persist を使用する方法
redux-persist 5.10.0 を使用。
公式ドキュメントを使用して構成した後、完全に機能しています。
と:
configureStore.js ファイルからわかるように、axios 用のカスタム ミドルウェアがあります。認証にJWTを使用しています。RECEIVE_LOGIN
このミドルウェアは、返されたトークンを axios インスタンスのデフォルト ヘッダーに割り当てることができるように、という名前のアクション定数をチェックします。
しかし、redux-persist のため、action.type からカスタム タイプ - RECEIVE_LOGIN - を取得できません。代わりに persist/PERSIST を取得してから persist/REHYDRATE を取得しています。でカスタム タイプを見つけることさえできませんaction
。
調べてみましたが、カスタムミドルウェアの例は見つかりませんでした。
私の質問は、redux-persist
カスタム ミドルウェアと一緒に使用するにはどうすればよいですか?