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

260
Vistas
Mostrando un error no detectado: las acciones deben ser objetos simples, al intentar enviar datos para almacenar en redux

Este es un error común que se muestra cuando estropeamos la acción. Pero en este caso, intento enviar una acción con datos en su parámetro . La acción está recibiendo los datos, pero el reductor no puede recuperarlos. Estoy usando el gancho useDispatch en este caso. ¿Hay alguna otra forma de enviar datos que no conozca, o debería usar la función connect() porque useDispatch tiene algunos errores? Estoy usando el nodo v16.15.1 y npm v8.12.2

He acortado el código para una mejor comprensión.

Componente

 const data = {...} dispatch(sendData(data)); // the dispatch function will call onClick of a button

Acción

 export const sendData(data) => { type:ADD_DATA, //ADD_DATA is a constant imported for using as type data }

reductor

 const dataReducer = (state = [], action) => { switch(action.type) { case ADD_DATA: return { ...state, action.data } default: return state; } }

combinado con la función combineReducers()
tienda creada usando configureStore()
la aplicación está empaquetada en <Provider store={store}></Provider>

Otro componente

 const data = useSelector(state=> state.dataReducer); console.log(data);

En console.log , el estado vacío se muestra cuando se procesa el componente. Pero no se actualiza onClick y da el error no detectado Las acciones deben ser objetos simples

Atrapado con el problema durante mucho tiempo y necesita ayuda
Gracias...

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

0

Su creador de acciones sendData está equivocado:

 export const sendData(data) => { type:ADD_DATA, //ADD_DATA is a constant imported for using as type data }

Esto en realidad no está devolviendo nada. Debido a que tiene un => y un { , es un cuerpo de función, no un objeto. Entonces, esto es en realidad :

  • un cuerpo funcional
  • una etiqueta llamada type
  • y una referencia a data

en lugar de un objeto como {type, data}

Podría poner paréntesis alrededor de las llaves para convertirlo en un objeto devuelto implícitamente: => ({type, data}) .

Sin embargo, la mejor respuesta aquí es cambiar y usar nuestro paquete oficial Redux Toolkit para escribir su lógica Redux. Redux Toolkit es la forma correcta de usar Redux hoy , y la API createSlice de RTK generará automáticamente creadores de acciones para usted .

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