redux-persistを使用しているときにエラーが発生しました。私はredux-persist v5に関するいくつかの文書を見つけることができた。私は公式の使用例に従っています。しかし、私はこれについて混乱しています。 redux-persistを使用する前に、私はストアから状態を正しく取得できます。しかし、私はローカルのログイン状態を維持したい。ですから、私はredux-persistを使用しようとします。それから、いくつかの問題があります。ここに私のコードです:redux-persist gotエラー:Storeに有効なレデューサーがありません
reducer.js
const initialState = {
isLogin: false,
uname: "",
}
const userReducer = (state = initialState, action) => {
switch(action.type) {
case 'DO_LOGIN':
return Object.assign({}, state, {
isLogin: true,
uname: action.payload.username
})
default:
return state
}
}
const reducers = combineReducers({
userInfo: userReducer
})
export default reducers
store.js
import thunk from 'redux-thunk'
import { createLogger } from 'redux-logger'
import { createStore, applyMiddleware, compose } from 'redux'
import { persistStore, persistCombineReducers } from 'redux-persist'
import storage from 'redux-persist/es/storage'
import reducers from '../reducers'
const loggerMiddleware = createLogger()
const middleware = [thunk, loggerMiddleware]
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose
const configureStore = composeEnhancers(
applyMiddleware(...middleware),
)(createStore)
const config = {
key: 'root',
version: 1,
storage,
}
const combinedReducer = persistCombineReducers(config, reducers)
const createAppStore =() => {
let store = configureStore(combinedReducer)
let persistor = persistStore(store)
return { persistor, store }
}
export default createAppStore
App.js
const mapStateToProps = (state) => ({
logged: state.userInfo.isLogin
})
私は、このエラーメッセージが表示されました。このコードを実行するとTypeError: Cannot read property 'isLogin' of undefined
コンソールのこのエラーメッセージStore does not have a valid reducer. Make sure the argument passed to combineReducers is an object whose values are reducers.
還元剤を組み合わせると何かが間違っているようです。しかし、どこが間違っているのか分かりません。
私はあなたの言ったことをしました。しかし、それは同じエラーです。 –
新しいコードで質問を更新できますか?あなたは私の更新された答えを試してみてください – Dane
申し訳ありません、私はあなたを今得ました。私は自分のコードを更新して、reducer.jsがオブジェクトをエクスポートできるようにしました。できます。どうもありがとうございました。 –