Tengo un requisito en el que tengo que usar la consulta RTK para la obtención de datos y Redux-thunk para la gestión del estado global. Para lo mismo he creado 2 tiendas separadas, una para RTK y otra para redux. Ahora estoy enfrentando un problema ya que no deberíamos tener 2 tiendas en nuestra aplicación.
tienda 1:-
import { createStore, applyMiddleware, compose } from 'redux'; import thunk from 'redux-thunk'; import combineReducer from './combineReducer'; export const configureStore = () : any => { const middleWares = [thunk]; const middlewareEnhancer = applyMiddleware(...middleWares); const enhancers = [middlewareEnhancer]; const composedEnhancers: any = compose(...enhancers); const store = createStore(combineReducer, composedEnhancers); return store; };tienda 2:-
import { configureStore } from "@reduxjs/toolkit"; import { setupListeners } from "@reduxjs/toolkit/query"; import { postApi } from "../services/posts"; export const store = configureStore({ reducer: { [postApi.reducerPath]: postApi.reducer, }, middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat(postApi.middleware), }); setupListeners(store.dispatch);Aplicación.tsx:-
const App: React.FC = () => ( <Provider store={store}> <Provider store={rtkStore}> <Suspense fallback={<div>Loading...</div>}> <BrowserRouter> <Routes /> </BrowserRouter> </Suspense> </Provider> </Provider> );Estoy seguro de que hay algo sospechoso en esto. Cualquier solución para el requisito sería apreciable.
Redux Toolkit viene con thunk por defecto. No es necesario configurarlo. RTK Query se basa internamente en thunks. No puede tener varias tiendas Redux en una aplicación.
Simplemente cree una tienda con configureStore , también agregue sus otros reductores allí y utilícelos para todo.
En general, recomendamos en la guía de estilo de Redux usar Redux Toolkit para toda su lógica de Redux, ya que ayudantes como createSlice reducen enormemente su código repetitivo y lo protegen contra los errores más comunes. Esta es la recomendación predeterminada desde hace más de dos años.
Le recomiendo encarecidamente que lea el tutorial oficial de Redux Essentials si aún no lo ha hecho.