首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何解决getdefaultMiddleware错误

如何解决getdefaultMiddleware错误
EN

Stack Overflow用户
提问于 2022-09-14 04:35:48
回答 1查看 102关注 0票数 0

我使用的是redux预器,但是当不设置任何中间件时,我会出现后续错误。

代码语言:javascript
运行
复制
  serializableStateInvariantMiddleware.ts:194 A non-serializable value was detected in an action, in the path: `register`. Value: ƒ register(key) {
    _pStore.dispatch({
      type: _constants__WEBPACK_IMPORTED_MODULE_0__.REGISTER,
      key: key
    });

当我尝试使用使用getdefault中间件的中间件来解决这个问题时,它会出现以下错误

代码语言:javascript
运行
复制
Object is of type 'unknown'.
    34 |     reducer:{
    35 |         app:presistedReducer,
  > 36 |         middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat(logger),
       |                                               ^^^^^^^^^^^^^^^^^^^^
    37 |     },
    38 |
    39 | })
  } 
Take a look at the logic that dispatched this action:  {type: 'persist/PERSIST', register: ƒ, rehydrate: ƒ} 

我甚至再试一次,但是这个错误

代码语言:javascript
运行
复制
Uncaught TypeError: getDefaultMiddleware is not a function

这是我的代码store.ts

代码语言:javascript
运行
复制
import { configureStore} from "@reduxjs/toolkit";
import storage from 'redux-persist/lib/storage';
import { combineReducers } from 'redux';
import { persistReducer,persistStore } from 'redux-persist';
import FavouriteReducer from "./FavouriteSlice";
import ProductReducer from './ProductSlice'
import ActionReducer from "./ActionSlice";
import {
    FLUSH,
    REHYDRATE,
    PAUSE,
    PERSIST,
    PURGE,
    REGISTER,
  } from 'redux-persist'

const reducers= combineReducers({
    action:ActionReducer,
    favourite:FavouriteReducer,
    product:ProductReducer
})


const persistConfig = {
    key: 'root',
    version: 1,
    storage,
}


const presistedReducer=persistReducer(persistConfig,reducers)
export const store = configureStore({
    reducer:{
        app:presistedReducer,
        middleware: (getDefaultMiddleware) =>
        getDefaultMiddleware({
          serializableCheck: {
            ignoredActions: [FLUSH, REHYDRATE, PAUSE, PERSIST, PURGE, REGISTER],
          },
        }),
    },
   
})
export const Persistor =persistStore(store)
export type AppDispatch = typeof store.dispatch;
export type RootState = ReturnType<typeof store.getState>;

你能帮我找出我哪里出了问题吗谢谢提前

EN

回答 1

Stack Overflow用户

发布于 2022-09-15 15:07:55

似乎您已经从还原器启动了中间件,应该是在之后:

代码语言:javascript
运行
复制
export const store = configureStore({
  reducer: {
    combineReducers,
  },middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat(logger),
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73711568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档