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.
Las dos primeras observaciones:
Para implementar deshacer, no estoy seguro de lo que se supone que significan sus acciones, pero puede hacerlo de la siguiente manera
state.present (el estado actual) y state.past (una matriz de estados pasados)state.present al final de state.past y calcula el nuevo state.presentstate.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 .