ReduxToolkit解决不能使用class创建

137 阅读1分钟

因为开发了个sdk插件需要一个全局管理,第一想的的是Redux去管理,但是报错了,先帮给了window对象类似高德地图,后续找到了解决方案,虽然问题解决了,感觉并不是很好用;

报错:A non-serializable value was detected in the state

原因:一般来说,React 和 Redux 应用程序应该使用纯 JS 对象和数组作为数据来编写,要使用"模型类class{}"

项目中版本
"@reduxjs/toolkit": "^1.9.1",
"react-redux": "^8.0.5",
解决方案代码
middleware: getDefaultMiddleware =>
    getDefaultMiddleware({
      serializableCheck: false,
}),
实际使用
import { configureStore } from '@reduxjs/toolkit'
import { userSlice } from './slices/user';
//configureStore挂载每一个modules
const store = configureStore({
    reducer: {
      user: userSlice.reducer, //user module
    },
    // devTools: true,
    middleware: getDefaultMiddleware =>
      getDefaultMiddleware({
      serializableCheck: false,
    }),
});

//定义 ts types
export type RootState = ReturnType<typeof store.getState>;
export type AppDispatch = typeof store.dispatch;

export default store;