私はReact、Redux、Firebaseを使用するチャットアプリケーションを持っています。また、Thunkmiddlewareを使用してFirebaseで状態の非同期更新を行います。 私は必要なものすべてを手に入れましたが、すべてが前もってハードコードされた変数に依存しています。Reduxを使用した認証状態の処理
私の残りの状態を満たすために必要な状態値を取得するには、どうすれば私のActionCreatorsメソッドをgetState()
メソッドで呼び出すことができますか?
私は現在、私の認証:{ uid = 'XXXZZZYYYY' }..
を持っています。私はちょうどそのように呼び出す必要があります
getState().auth.uid
しかし、それはまったく動作しません。
mapDispatchToProps
などを使用してさまざまな質問を試しました。必要に応じて私のレポを表示できます。
私はこの他の質問に続いて成功することはありませんでした。 Accessing Redux state in an action creator? これは私の関連する現在のコードです:
const store = createStore(
rootReducer,
defaultState,
applyMiddleware(thunkMiddleware));
そして
function mapDispatchToProps(dispatch) {
watchFirebase(dispatch); // to dispatch async Firebase calls
return bindActionCreators(actionCreator, dispatch);
}
const App = connect(mapStateToProps, mapDispatchToProps)(AppWrapper);
他の多くのnot pure
の機能が正常に動作するように私が正しくエクスポートしています。例えば が、これは正常に動作します。しかし
export function fillLoggedUser() {
return (dispatch, getState) => {
dispatch({
type: C.LOGGED_IN,
});
}
}
以下示唆したように、これは事行いません:あなたのサンクアクションの作成者は、以下のようになります一般的に
const logState =() => (dispatch, getState) => {
console.log(getState());
};
あなたがリンクしているSOの答えに示すように、これを行う最も簡単な方法は、redux-thunkを使用することです。もしあなたがすでにそれを試してみたら、あなたの特定の問題を助けるためにいくつかのコードを投稿してください。 –