redux 获取警告消息“getDefaultMiddleware”已弃用

kqlmhetl  于 2023-11-19  发布在  其他
关注(0)|答案(3)|浏览(235)

在更新"@reduxjs/toolkit": "^1.6.1"后,我收到一个getDefaultMiddleware is deprecated警告,那么我应该如何删除这个警告。我们有没有其他方法可以在configureStore函数中注入默认中间件?

import { configureStore, getDefaultMiddleware } from "@reduxjs/toolkit";
import reducer from "./reducer";
import api from "./middleware/api";
export default function storeConfigure() {
   const store = configureStore({
   reducer,
   middleware: [
      ...getDefaultMiddleware(), 
      api
    ],
  });
  return store;
}

字符串
任何帮助是赞赏感谢!

voj3qocg

voj3qocg1#

configureStore中的middleware选项接受一个回调函数,该回调函数的参数为getDefaultMiddleware

const store = configureStore({
  reducer: rootReducer,
  middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat(logger),
})

字符串
使用它而不是单独导入的版本。

dtcbnfnu

dtcbnfnu2#

可以这样使用:

const store = configureStore({
  reducer,
  middleware: (getDefaultMiddleware) => [...getDefaultMiddleware(), api],
})

字符串
一个回调函数返回一个中间件的数组,这样会更清晰易读。

qcbq4gxm

qcbq4gxm3#

getDefaultMiddleware已被弃用,您可能需要像这样将它们添加为数组。

const store = configureStore({
  reducer: rootReducer,
  middleware: [thunk, logger],
})

字符串
注意事项:您将负责添加所有您需要的中间件,因为getDefaultMiddleware()附带了几个其他中间件(其中大多数是用于开发目的,除了AsyncThunk)。
如果你需要添加它们,你可以这样做;

const store = configureStore({
  reducer: rootReducer,
  middleware: [
    createActionCreatorInvariantMiddleware,
    createImmutableStateInvariantMiddleware,
    createAsyncThunk,
    createSerializableStateInvariantMiddleware,
  ]});


请记住在上面的代码中导入它们。

相关问题