我在坚持Redux使用 ReactReact-Redux和Redux-Persist.
减速机示例:
export default (state = {}, action) => {
switch (action.type) {
case "SET_FOO":
return action.payload
default:
return state;
}
};
动作示例:
const setFooAction = (payload) => {
return {
type: "SET_FOO",
payload
}
}
export default setFooAction;
索引.js
import { createStore, combineReducers } from "redux";
import { persistStore, persistReducer } from "redux-persist";
import storage from "redux-persist/lib/storage";
import { PersistGate } from 'redux-persist/integration/react'
import fooReducer from "redux/reducers/setFooReducer";
const persistConfig = {
key: "root",
storage
};
const rootReducer = combineReducers({
foo: fooReducer
});
const persistedReducer = persistReducer(persistConfig, rootReducer);
let state = {
foo: {}
}
let store = createStore(
persistedReducer,
state,
window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()
);
let persistor = persistStore(store);
ReactDOM.render(
<Provider store={store}>
<PersistGate loading={null} persistor={persistor}>
<App />
</PersistGate>
</Provider>,
document.getElementById("root")
);
最初,一切正常:
应用程序加载
初始状态在整个应用程序中设置
这会更新 Redux 存储
PERSIST
火灾,并将其存储在本地存储中。
刷新时,从第一次加载数据开始,一切都按预期持续存在。
Redux 存储中各种对象的第一次更新。
然而...
如果我决定在我的对象中添加任何新内容并将它们设置/更新到 Redux 存储中......
...刷新时,只有最初保留的内容仍然存在REHYDRATE
(如果我正确理解 Redux 事件)。
现在我相信这与我的对象不变性和 Redux 没有因此而接受更改有关,但我试图改变我的减速器没有任何运气:
慕后森
相关分类