estoy usando la forma createSlice para implementar redux por primera vez y estoy tratando de mutar el estado en la tienda que no funciona y el objeto que estoy actualizando se vuelve indefinido. Por favor ayúdame a arreglarlo
[save.fulfilled]:(state,action)=>{ console.log("inside save it"); console.log(action.payload,"test"); console.log(current(state)); current(state).list.map((C,i)=>{ console.log(C._id,"ii"); if(C._id==action.payload._id){ const temp=Object.assign({},C); temp=action.payload.obj return temp; } return C; }) console.log(current(state).list); }si la identificación coincide, necesito mutar una clave
Object { form: {…}, _id: "617ce521028ba1920422fb6b" } _id: "617ce521028ba1920422fb6b" form: Object { name: "adarsh hh", email: "adarsh@gmail.com", phone: "8340484685", … }arriba está el objeto de acción, abajo está el estado
Object { list: (2) […], status: "succeeded" } list: Array [ {…}, {…} ] 0: Object { _id: "617ce521028ba1920422fb6b", userid: "616548965d47a2b6ec0a1592", key: 0, … } __v: 0 _id: "617ce521028ba1920422fb6b" created: "2021-10-30T06:24:33.922Z" form: Object { name: "adarsh raii", email: "adarsh@gmail.com", phone: "8340484685", … } key: 0 updated: "2021-10-30T06:24:33.922Z" userid: "616548965d47a2b6ec0a1592" <prototype>: Object { … } 1: Object { _id: "617ce5a2028ba1920422fb72", userid: "616548965d47a2b6ec0a1592", key: 0, … } __v: 0 _id: "617ce5a2028ba1920422fb72" created: "2021-10-30T06:26:42.600Z" form: Object { name: "adarsh raj", email: "adarsh@gmail.com", phone: "8340484685", … } key: 0 updated: "2021-10-30T06:26:42.600Z" userid: "616548965d47a2b6ec0a1592" <prototype>: Object { … } length: 2 <prototype>: Array [] status: "succeeded" <prototype>: Object { … }solo quiero mutar el objeto de formulario de un objeto de campo en particular haciendo coincidir el _id para actualizarlo en dom
si no puede mutar el estado redux, debe copiar el estado que necesita para trabajar en su lógica. Creo que el siguiente código sería suficiente para sus requisitos, hágamelo saber.
[save.fulfilled]:(state,action)=>{ console.log("inside save it"); console.log(action.payload,"test"); console.log(current(state)); let temp= Object.assign({},current(state)); temp.list.forEach((C,i)=>{ console.log(C._id,"ii"); if(C._id==action.payload._id){ temp.list[i] = action.payload.obj } }) return temp; console.log(current(state).list); }