問題タブ [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.

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

reactjs - action.rehydrate は関数ではありません

コンソールでいつか次のエラーが発生しましたが、それが何を意味し、なぜ発生しているのかわかりません。この問題について少し光を広げてください。 ここに画像の説明を入力

それは言います:

package.json の redux-persist バージョン: "^5.6.11" ロックされたバージョン: "5.9.1"

ストア構成コード:

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

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ストアデータを表示する代わりにストアが空になります。誰でも助けることができますか?

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

reactjs - テストを終了する前に Redux Persist が再水和するのを待つ方法

次のコードがあります。

redux-persist を使用して状態を再水和します。これが完了する前に、loading プロパティにあるものを表示します。私はJestテストを持っています(箱から出してすぐに反応ネイティブに付属するデフォルトのものです):

しかし、テストはパスしましたが、まだ実行されているアクションとpersist/PERSISTpersist/REHYDRATEテストでコンソールに出力された値 (レンダリングされた出力) は次のとおりです。

私がやりたいことは、redux-persist がハイドレーションを完了するまで待ってから、レンダリングされた値を確認することです。これどうやってするの?

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

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カスタム ミドルウェアと一緒に使用するにはどうすればよいですか?