Estoy agregando el componente dinámicamente con la ayuda de require.ensure() de ES6 y getComponent() del react-router . Recibo el error anterior una vez que abro una pestaña separada para cada registro que tiene la misma clave, por ejemplo, "A". Mi carga dinámica es así:
require.ensure([], (require) => { const req = require('./components/A).default const reducer= require('./modules').default injectReducer(store, { key: 'A', reducer }) cb(null, req) }) Mi código para createstore() es así:
export const makeRootReducer = (asyncReducers) => { return combineReducers({ B, C, ...asyncReducers }) } export const injectReducer = (store, { key, reducer }) => { if (Object.hasOwnProperty.call(store.asyncReducers, key))return store.asyncReducers[key] = reducer store.replaceReducer(makeRootReducer(store.asyncReducers)) }Ahora el problema es que al abrir la pestaña del navegador, excepto la primera vez, muestra la advertencia como:
Clave inesperada "A" encontrada en el estado anterior recibido por el reductor Se esperaba encontrar una de las claves reductoras conocidas en su lugar: "B", "C". Las claves inesperadas serán ignoradas.
Si paso inicialmente la tecla 'A' combineReducers() , esta advertencia se activará. Pero este combineReducers() es global y mantendrá el estado de los reductores, por lo que no quiero pasar esta clave en la carga inicial. ¿Cómo puedo resolver esta advertencia por favor ayúdame.
Me encontré con este problema hoy, ya que parece que no hay respuesta, daré lo que funcionó para mí.
Este error apareció cuando estaba configurando un estado inicial con la función createStore. No tenía ningún reductor que coincidiera con el diseño del árbol de estado inicial, lo que significaba que redux estaba ignorando parte de mi estado inicial. Sin embargo, este parece ser solo el caso de las claves de primer nivel en el árbol, parece feliz dejar pasar las claves anidadas.
Entonces, si obtiene esto, asegúrese de que su estado inicial y los reductores tengan un árbol coincidente. Esto también se describe en la documentación de createStore .