【发布时间】:2018-05-19 11:06:13
【问题描述】:
我正在尝试使用 redux-persist 存储 ES6 地图,以便我的数据不会在页面刷新时丢失。这是我正在尝试使用的代码
const initialState = {
subevents: new Map()
};
const subEventsReducer = (state = initialState, action) => {
switch (action.type) {
case ACTIONS.SET_SUBEVENT: {
const subevents = state.subevents;
subevents.set(action.subevent.key, action.subevent);
return {
...state,
subevents
}
}
default:
return state;
}
};
const transformSubeventMap = createTransform(
(state) => {
return { ...state, subevents: JSON.stringify([...state]) }
},
(state) => {
console.log(state);
return { ...state, subevents: JSON.parse(new Map(state.subevents)) }
}
);
const subevents = persistReducer(
{
version: 1,
key: 'subevents',
storage,
transforms: [transformSubeventMap],
whitelist: ['subevents']
},
subEventsReducer
);
export default subevents;
我想将 subevents 属性存储为 (Date, Array) 的 Map。知道为什么这不起作用吗?
【问题讨论】:
-
是的,我确实看过它,但它不是我想要的。知道如何解决这个问题吗?
-
JSON.parse(new Map(state.subevents))你正在解析一个Map,当你应该解析一个JSON字符串时
标签: javascript reactjs ecmascript-6 redux