gpt4 book ai didi

Redux RTK 查询 : getDefaultMiddleware is not a function

转载 作者:行者123 更新时间:2023-12-05 08:18:00 27 4
gpt4 key购买 nike

getDefaultMiddleware 从哪里来?我正在阅读 docs它似乎神奇地出现在配置商店中。虽然这很好,但它并没有进入我的商店,而且......因为没有这个功能的导入路径而且我不知道如何解决这个问题,我可以使用一些指导。

rtk 版本:"@reduxjs/toolkit": "^1.6.1",

tldr;

getDefaultMiddleware() 在我的商店中不存在 + 我还没有在文档中找到任何有用的东西。

这是我得到的错误:

enter image description here

这是我的store.ts

import { Action, configureStore, ThunkAction } from '@reduxjs/toolkit';
import { setupListeners } from '@reduxjs/toolkit/query';
import { myApi } from './services/api';

import authorReducer from './slices/authorSlice';
import transcriptReducer from './slices/transcriptSlice';

export const store = configureStore({
reducer: {
[myApi.reducerPath]: myApi.reducer,
middleware: (getDefaultMiddleware) =>
// "This expression is not callable."
getDefaultMiddleware().concat(myApi.middleware),
author: authorReducer,
transcript: transcriptReducer,
},
});

setupListeners(store.dispatch);

// Infer the `RootState` and `AppDispatch` types from the store itself
export type RootState = ReturnType<typeof store.getState>;
export type AppDispatch = typeof store.dispatch;
export type AppThunk<ReturnType = void> = ThunkAction<
ReturnType,
RootState,
unknown,
Action<string>
>;

这是我的api.ts

import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react';

const apiEndpoint ='http://localhost:5000';

export const myApi = createApi({
reducerPath: 'myApi',
baseQuery: fetchBaseQuery({ baseUrl: apiEndpoint }),
endpoints: builder => ({
getFileById: builder.query<any, { id: string; fileId: string }>({
query: arg => {
const { id, fileId } = arg;
return `/some/endpoint/with/two/${id}/pathvariables/${fileId}`;
},
}),
}),
});

// RTK Query will automatically generate hooks for each endpoint query
export const { useGetFileByIdQuery } = myApi;

最佳答案

回答:

我在 reducer: { ... } 内部定义了我的中间件。我需要将它移到那个 reducer 对象的外面。问题解决了。

export const store = configureStore({
reducer: {
[myApi.reducerPath]: myApi.reducer,
author: authorReducer,
transcript: transcriptReducer,
},
middleware: getDefaultMiddleware =>
getDefaultMiddleware().concat(myApi.middleware),
});

关于Redux RTK 查询 : getDefaultMiddleware is not a function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69095766/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com