Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

94
Vistas
haciendo una solicitud de publicación dentro de mapDispatchToProps en react-redux

Estoy tratando de hacer una solicitud de publicación dentro de una función cada vez que hago clic en un botón. aqui esta el codigo del boton

 <Button onClick={handleClick}>Add to Cart</Button>

y aquí está la función `handleClick:

 const handleClick = (event) => { event.preventDefault(); props.postCart(itemData.product_name, itemData.product_price); }

y aquí muestro el código de la función mapDispatchToProps :

 const mapDispatchToProps = dispatch => { return { postCart: (productName, productPrice) => dispatch(postAddToCart(productName, productPrice)) } }

finalmente el código de postAddToCart :

 export const postAddToCart = (productName, productPrice) => { const email = sessionStorage.getItem('email'); return (dispatch) => { dispatch(productName, productPrice); //REST API endpoint axios.post('http://localhost:8000/api/auth/add-to-cart', { email:email, }) .then(resp => { dispatch({ type: actionTypes.ADDED_TO_CART, status: resp.status }); }) .catch(resp => { dispatch({ type: actionTypes.ADDED_TO_CART, status: "FAILED" }); }) } }

Pero cada vez que hago clic en el botón Agregar al carrito, aparece el siguiente error:

Error: Actions must be plain objects. Use custom middleware for async actions. sabiendo que estoy usando el middleware redux-thunk .

¿Puede decirme cuál es el problema y cómo puedo solucionarlo? gracias ^^. si me perdí algo díganmelo en comentarios para agregarlo ^^

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Su función postAddToCart() devuelve un "despachador", es decir, una función que espera el dispatch como argumento.

El error es que está intentando enviar este "despachador", en lugar de una "acción":

 // wrong: calling 'dispatch()' postCart: (productName, productPrice) => dispatch(postAddToCart( ... )) // correct: calling the returned dispatcher and pass 'dispatch' as argument postCart: (productName, productPrice) => postAddToCart( ... )(dispatch)
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda