Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

253
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!