所以我得到了Uncaught Error: when using a middleware builder function, an array of middleware must be returned
这是我的密码
import {
configureStore,
compose,
combineReducers,
applyMiddleware
} from "@reduxjs/toolkit";
import thunk from "redux-thunk";
const rootReducer = combineReducers({});
const middleware = applyMiddleware(thunk);
const composeWithDevTools =
window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
const composedMiddleWare = composeWithDevTools(middleware)
const store = configureStore({
reducer: rootReducer,
middleware: composedMiddleWare,
devTools:
window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()
})
export default store;
我不知道哪里出了问题,搜索似乎没有返回任何有用的结果。
3条答案
按热度按时间flvlnr441#
configureStore
fromredux-toolkit
(RTK)的工作方式与redux
createStore
函数不同。middleware
属性接受要安装的中间件数组,并接受应用它们的RTK处理。参见configureStore
请注意,虽然
applyMiddleware
是从redux
重新导出的,但您不需要直接使用它。
下面是你要使用的代码:
RTK还附带了自定义优化:
1.默认情况下启用
devTools
,只有在您有自定义需求时才会使用此选项。middleware
属性,则提供getDefaultMiddleware
并返回以下中间件值,其中包括thunk
中间件:同样,如果您需要定制immutability或serialization中间件,则实际上只需要指定
middleware
属性。您的商店配置可以简化为以下内容:
Thunk中间件和开发工具都将处于活动状态并正常工作。
7fyelxc52#
您遇到的错误是由Redux中
applyMiddleware
函数的错误使用引起的。在Redux Toolkit中,configureStore
函数已经在内部应用了中间件,因此您不需要单独使用applyMiddleware
。下面是正确的代码:
t9aqgxwy3#
从这条线
数组是空的,它不能是空的,我们必须放入一个切片。例如,如果你想使用userSlice,你必须像这样添加它:
注意我向数组中添加了一个userSlice