ここにあなたの減速のスクリーンショットhttps://i.stack.imgur.com/TRvKP.pngを考えると、私はこのような何かしようとするだろう:
// authReducer.js
const initialState = {
auth: {
isAdmin: false,
},
isLoggedOn: false
}
// create a default schema for you state rather than defaulting to null
export default function (state = initialState, action) {
// the rest of your code
}
コンポーネントによって期待されているものに準拠した方法で、この意志のセットアップ認証減速であなたの最初のReduxの状態を。
アクションごとに
、FETCH_USER
とLOGOUT_USER
、あなたは新しい状態を記述するいくつかのプロパティを持つオブジェクトを返すようにしたいでしょうが、あなたは現在、完全に異なるデータ形式であるLOGOUT_USER
戻りfalse
、(ブール値)は、その後何も設定しています私は、あなたが認証状態(通常はあなたがオブジェクトを望む)の表現を使っていると思います。状態が変化して
は、一般的で便利なパターンが新しいと古い状態をマージし、新しいオブジェクトを返すことですので、あなたは、アクションのために、このようなもので終わる可能性:
case LOGOUT_USER:
return { ...state, action.payload }
この性を保証redux状態は常に特定の形状に適合し、コンポーネント内の小道具のnull/undefinedエラーを回避するのに役立ちます。
そこから、さまざまな状況の下で、isAdminプロパティをtrueに更新するアクションをディスパッチできます。
還元剤コードを表示できますか? – godsenal
は投稿を編集しました。アクションとレデューサーの写真が追加されました –
あなたの初期状態がヌルと等しいためですか?とにかく、このような問題は簡単にデバッグすることができます。 dev-toolsのブラウザでは、すべての重要な場所(減速機、mapstatetopropopsなど)にブレークポイントを設定し、問題がどこにあるかを確認することができます –