因为开发了个sdk插件需要一个全局管理,第一想的的是Redux去管理,但是使用new 创建的对象类无法使用且会报错,后续找到了解决方案;
报错: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;