我试图将RTK-Query中间件添加到嵌套的存储结构,当我添加api中间件时,我得到一个非常长且非描述性的typescript错误…
下面是我的代码:
export const rootReducer = combineReducers({
foo: fooReducer,
nested: combineReducers({
bar: barReducer,
[myFooApi.reducerPath]: myFooApi.reducer,
})
});
const store = configureStore({
reducer: rootReducer,
middleware: (getDefaultMiddleware) => // Getting TS2322 error: type is not assignable to type...
getDefaultMiddleware().concat(tokenListsApi.middleware)
});
当我像这样移动[fooApi.reducerPath]
到减速机的根时,错误消失:
export const rootReducer = combineReducers({
foo: fooReducer,
bar: barReducer,
[fooApi.reducerPath]: fooApi.reducer,
});
我正在寻找RTK-Query Api reducer的嵌套用法的例子,但找不到任何…我错过了什么?
这个问题在一个问题中得到了回答,但为了子孙后代:
RTK Query要求将所有API切片缩减器设置为根状态的顶级切片,没有嵌套。RTKQ通过TS类型和运行时检查来实现这一点。因此,这里的修复是将[fooApi.reducerPath]: fooApi.reducer
向上移动到状态树的根。