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

204
Vistas
¿Qué sugieres para deshacer?

Utilizo una serie de datos de la siguiente manera:

 [ { name: 'name1', background:'red', child:[ { name:'', id:'', color:'', text:'', border:'' }, { name:'', id:'', color:'', text:'', border:'' } ] }, { name: 'name2', background:'red', child:[ { name:'', id:'', color:'', text:'', border:'' }, { name:'', id:'', color:'', text:'', border:'' } ] } ]

Voy a guardar todos los cambios en otra variable, y utilicé una copia profunda para hacer eso, pero cuando inicio sesión, las variables son las mismas. Necesito a los niños todos los cambios de los niños también.

Lo escribí en Reductores

 const Reducers =(state = initialState, action) => { switch (action.type) { case NEW_OBJECTS_PAST: const OldPast = JSON.parse(JSON.stringify(state.past)) const newDate = JSON.parse(JSON.stringify(state.present)) // const newDate = _.cloneDeep(state.present); const newPast = [ OldPast, newDate ]; return { ...state, past : _.cloneDeep(newPast) , } case OBJECTS: return { ...state, present: action.objects, // future:[] }

¿Sugiere otra forma de compilar deshacer en REACT y REDUX ? Probé las bibliotecas disponibles para esto, pero no obtuve respuesta.

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

0

Las dos primeras observaciones:

  • nunca debe realizar una clonación profunda de partes de su estado, no le brinda ningún beneficio ya que el estado es inmutable de todos modos, pero es muy perjudicial para el uso de la memoria y el rendimiento (tanto cuando se realiza la clonación profunda como cuando se usa el estado clonado profundo ),
  • debe usar el kit de herramientas Redux, que facilita mucho la escritura de reductores inmutables y evita muchos errores.

Para implementar deshacer, no estoy seguro de lo que se supone que significan sus acciones, pero puede hacerlo de la siguiente manera

  • el estado contiene state.present (el estado actual) y state.past (una matriz de estados pasados)
  • cada vez que realiza una acción que desea deshacer, empuja el estado actual state.present al final de state.past y calcula el nuevo state.present
  • cada vez que quieras deshacer, extraes el último elemento de state.past y lo pones en state.present .

En su código no puedo ver ninguna acción de deshacer, y también está creando matrices anidadas debido a new Past = [oldPast, new Date] , lo más probable es que haya querido difundir oldPast .

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