reactjs Nextjs在Redux Toolkit上实现Mutex

rggaifut  于 2023-05-17  发布在  React
关注(0)|答案(1)|浏览(124)

所以,我有一个商店

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

来自@reduxjs/toolkit/query/react的API

export const api = createApi({
  reducerPath: 'api',
  baseQuery: baseQuery,
  endpoints: (builder) => ({})
})

那么如果我插入

import { Mutex } from 'async-mutex'; <<--

const mutex = new Mutex(); <<--

const baseQuery = fetchBaseQuery({
  baseUrl: BASE_API_V1,
});

export const api = createApi({
  reducerPath: 'api',
  baseQuery: baseQuery,
  endpoints: (builder) => ({})
})

总是得到
TypeError: Cannot read properties of undefined (reading 'getState')
已经把我的商店放到我的应用类里了

export default function App({ Component, pageProps }: AppProps) {
  return (
    <Provider store={store}>
      <Component {...pageProps} />
    </Provider>
  );
}

我错过了什么?
如果我把那个const mutex = new Mutex();
一切正常。
但是我需要使用它,因为我想实现baseQueryWithReauth
Same problem but not solved
我已经读过了,但仍然没有找到任何对我有帮助的东西。既然我的名声还不足以评论,所以我提出了新的问题。
谢谢

toe95027

toe950271#

我也遇到了同样的问题,在阅读了他们提到的GitHub Repo之后:
从Node 12.16和13.7开始,支持原生ES6样式导入。
警告:Node 13版本< 13.2.0无法正确导入此包。Node 12和更早的版本都很好,Node 13的新版本也是如此。
您可能需要使用node --version检查节点版本

相关问题