tutorial reducer react form actions reactjs redux react-redux

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 .