SnN*_*aCk 1 javascript reactjs redux redux-persist
我尝试在 Redux-Persist 中转换我的 Redux 状态,但我不知道如何编写代码,因为我使用 mergeReducers。
这是我的商店的样子:
import { createStore, combineReducers } from 'redux'
import { usersReducer } from './users';
import { eventsReducer } from './events';
export const store = createStore(combineReducers({
users: usersReducer,
events: eventsReducer
}));
Run Code Online (Sandbox Code Playgroud)
这就是商店的样子:
const initialState = {
loggedIn: false,
thisUser: []
}
export function usersReducer(state = initialState, action) {
switch (action.type) {
case 'users/loggedIn':
return { ...state, loggedIn: action.payload }
case 'users/addUser':
return { ...state, thisUser: action.payload[0] }
case 'users/setActivated':
return { ...state, thisUser: { ...state.thisUser, activated: action.payload } }
case 'clearAll':
return {
thisUser: []
}
default:
return state
}
}
Run Code Online (Sandbox Code Playgroud)
有人可以帮我吗?
您只需更改 中的代码即可store.js。
@reduxjs/toolkit包npm install @reduxjs/toolkityarn add @reduxjs/toolkitredux-persist包npm install redux-persistyarn add redux-persiststore.js文件中进行的更改import { combineReducers } from 'redux'
import { configureStore } from '@reduxjs/toolkit'
import { usersReducer } from './users';
import { eventsReducer } from './events';
import {
FLUSH, PAUSE,
PERSIST, persistReducer, PURGE,
REGISTER, REHYDRATE
} from 'redux-persist';
import storage from 'redux-persist/lib/storage';
// combine all reducers
const reducers = combineReducers({
users: usersReducer,
events: eventsReducer
})
export const store = configureStore({
reducer: persistReducer(
{
key: 'root',
storage
},
reducers
),
middleware: getDefaultMiddleware => getDefaultMiddleware({
serializableCheck: {
ignoredActions: [FLUSH, REHYDRATE, PAUSE, PERSIST, PURGE, REGISTER]
}
})
})
Run Code Online (Sandbox Code Playgroud)
import { combineReducers } from 'redux'
import { configureStore } from '@reduxjs/toolkit'
import { usersReducer } from './users';
import { eventsReducer } from './events';
import {
FLUSH, PAUSE,
PERSIST, persistReducer, PURGE,
REGISTER, REHYDRATE
} from 'redux-persist';
import storage from 'redux-persist/lib/storage';
// combine all reducers
const reducers = combineReducers({
users: persistReducer(
{
key: 'users',
storage
},
usersReducer
),
events: eventsReducer
})
export const store = configureStore({
reducer: reducers,
middleware: getDefaultMiddleware => getDefaultMiddleware({
serializableCheck: {
ignoredActions: [FLUSH, REHYDRATE, PAUSE, PERSIST, PURGE, REGISTER]
}
})
})
Run Code Online (Sandbox Code Playgroud)
以下是参考资料:
| 归档时间: |
|
| 查看次数: |
1857 次 |
| 最近记录: |