hola a todos, tengo una idea para crear una aplicación con un proveedor Redux separado para cada parte de mi aplicación. en el mundo real, mi aplicación es demasiado grande para usar Combine Reducer y no quiero fusionar todos mis Redux en 1 tienda, así que creo una tienda para cada parte. pero necesito otro proveedor para hacer que algún estado sea global y llamo a este proveedor como padre de mi aplicación. Puedo ver datos redux de ambos proveedores en la extensión Redux. Pero me enfrento a un problema: intento usar useSelector en mi componente secundario y solo puedo acceder a los datos del proveedor secundario y no puedo tener acceso a mi proveedor principal. ¿Hay alguna solución para eso o es una buena manera porque yo tener aplicación de abrazo y estado de abrazo.
el proveedor principal
import { globalStore } from "@/store/globalStore"; import type { AppProps } from "next/app"; import { Provider } from "react-redux"; function MyApp({ Component, pageProps }: AppProps) { return ( <Provider store={globalStore}> <Component {...pageProps} />; </Provider> ); } export default MyApp;el niño proveedor
import type { NextPage } from "next"; import { MainLayout } from "@/layouts/index"; import { Provider } from "react-redux"; import { homeStore } from "@/store/homeStore"; const Home: NextPage = () => { return ( <> <Provider store={homeStore}> <MainLayout> <h1>test</h1> </MainLayout> </Provider> </> ); }; export default Home;y la forma en que creo una tienda para cada proveedor
import { applyMiddleware, createStore } from "redux"; import { composeWithDevTools } from "redux-devtools-extension"; import thunk from "redux-thunk"; import { homeReducer } from "./reducer"; export const homeStore = createStore( homeReducer, composeWithDevTools(applyMiddleware(thunk)) );también creo que tengo un problema con mi acción de envío si alguien puede ayudar con esto también
En Redux, no existe el concepto de proveedores "principales" o "secundarios". Redux está hecho para tener una tienda. Su "proveedor secundario" es solo el nuevo proveedor, sobrescribiendo al principal para todos los componentes secundarios. No puedes simplemente cambiar entre ellos.
Dicho esto, hay una forma documentada de usar 2 contextos diferentes para usar 2 tiendas, pero generalmente esto no es algo recomendado.