reactjs - reducer - redux form
Redux: el estado anterior recibido por el reductor tiene un tipo inesperado de "Funci贸n" (2)
createStore
here :
- reductor
- estado precargado
- potenciador
Si solo se proporcionan dos argumentos y el segundo argumento es una funci贸n, entonces se considera un potenciador. Ver m谩s en el c贸digo fuente .
Si desea utilizar los dispositivos de redux, debe compose
como un potenciador adicional.
import { applyMiddleware, createStore, compose } from ''redux'';
const store = createStore(
reducer,
compose(
middleware,
window.devToolsExtension ? window.devToolsExtension() : f => f
)
)
Espero que ayude. Pozdrav 馃槈
Cuando agrego middleware para la extensi贸n de Chrome, los reductores dejan de funcionar correctamente en el sitio (pero la herramienta de depuraci贸n Chrome / Redux funciona) + Recibo el siguiente error en la consola
El estado anterior recibido por el reductor tiene un tipo inesperado de "Funci贸n". Se espera que el argumento sea un objeto con las siguientes claves: "auth", "common", "home"
Aqu铆 est谩 el c贸digo:
import { applyMiddleware, createStore } from ''redux'';
import { promiseMiddleware, localStorageMiddleware } from ''./middleware'';
import reducer from ''./reducer'';
const middleware = applyMiddleware(promiseMiddleware, localStorageMiddleware);
const store = createStore(reducer, middleware,
window.devToolsExtension ? window.devToolsExtension() : f => f);
export default store;
Si quito parte de cromo:
,window.devToolsExtension ? window.devToolsExtension() : f => f
Si funciona de nuevo normal.
createStore
toma hasta 3 argumentos. Si el segundo argumento es una funci贸n, se supone que su segundo argumento es el mejorador de la tienda. Si es un objeto o hay 3 argumentos presentes, se supone que el argumento es su estado inicial . Ver here
Su variable de middleware es un potenciador de la tienda y la extensi贸n de Chrome tambi茅n es un potenciador:
window.devToolsExtension ? window.devToolsExtension() : f => f
Tienes que componer ambas en una sola funci贸n:
import { applyMiddleware, createStore, compose } from ''redux'';
import { promiseMiddleware, localStorageMiddleware } from ''./middleware'';
import reducer from ''./reducer'';
const middleware = applyMiddleware(promiseMiddleware, localStorageMiddleware);
const store = createStore(
reducer,
compose(middleware, window.devToolsExtension ? window.devToolsExtension() : f => f)
);
export default store;
La documentaci贸n para esto se puede encontrar here .