nro*_*fis 16 redux immer.js redux-toolkit
我有一些在其状态下使用Sets 的切片。我有这个代码:
import { configureStore } from '@reduxjs/toolkit';
import { enableMapSet } from 'immer';
import { reducers } from './reducers';
enableMapSet();
export function configureStore() {
const rootReducer = combineReducers({
...reducers,
});
return configureStore({
reducer: rootReducer,
});
}
const store = configureStore();
export type AppDispatch = typeof store.dispatch;
export default store;
Run Code Online (Sandbox Code Playgroud)
尽管我安装了immer并调用enableMapSet(),但加载应用程序时仍然出现错误:
未处理的拒绝(错误):[Immer]“MapSet”插件尚未加载到 Immer 中。要启用该插件,请
enableMapSet()在初始化应用程序时导入并调用。
我应该如何配置enableMapSetRedux Toolkit?
man*_*roe 11
之前接受的答案至少对我解决我遇到的问题有帮助,类似于OP。
我已经Map在旧版本的 Redux 中存储了很长一段时间,没有出现任何问题,我看到了这样的说法:你不应该在互联网上这样做,但它几乎没有理由合理。我偶尔看到的原因之一是它们不可序列化。但是,我不会将 Redux 状态保存到 LocalStorage 等,因此可序列化问题似乎不会影响我。
为了解决OP的问题,鉴于已接受的答案的建议,即我的应用程序中可能存在多个版本immer,我转到我的yarn.lock文件以查看哪个版本@reduxjs/toolkit取决于(7.0.3截至reduxjs/tookit@1.4.0),并确保我添加到我自己的版本中package.json是一样的。(yarn add immer安装了比 Redux 使用更新的版本immer)。
一旦我做出了改变,我就打电话去enableMapSet()摆脱错误OP,我就这么做了。
这里有两个想法:
Map应该将像s 和s这样的不可序列化对象Set放入 Redux 状态enableMapSet,这就是我们一开始不打开的原因。| 归档时间: |
|
| 查看次数: |
16294 次 |
| 最近记录: |