使用 RTK-Query 中间件配置商店

Dan*_*viv 6 reactjs redux react-redux redux-toolkit rtk-query

我正在尝试将 RTK-Query 中间件添加到嵌套存储结构中,当我添加 api 中间件时,出现非常长且非描述性的打字稿错误...

这是我的代码:

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)

});

Run Code Online (Sandbox Code Playgroud)

[fooApi.reducerPath]当我像这样移动到减速器的根时,错误消失了:

export const rootReducer = combineReducers({
  foo: fooReducer,
  bar: barReducer,
  [fooApi.reducerPath]: fooApi.reducer,  
});
Run Code Online (Sandbox Code Playgroud)

我正在寻找 RTK-Query Api 减速器的嵌套使用示例,但找不到任何...我错过了什么?

mar*_*son 10

这已在一个问题中得到回答,但对于后代:

RTK 查询要求所有 API 切片缩减器都设置为根状态的顶级切片,并且没有嵌套。RTKQ 通过 TS 类型和运行时检查强制执行此操作。因此,这里的解决方法是将[fooApi.reducerPath]: fooApi.reducer向上移动到状态树的根部。