Así que básicamente tengo una lista de objetos. Estoy iterando y tengo que cambiar una propiedad del objeto. Tengo dos escenarios, en uno tengo que cambiar la propiedad de un objeto en particular.
setList(list.map((list_item)=> list_item.id===id?{...list_item,doubleClick:true}:list_item )Y hay otro escenario en el que tengo que cambiar la propiedad de cada objeto de la lista.
setList(list.map((list_item)=>{...list_item,doubleClick:false}))El primer caso funciona bien, pero el segundo caso arroja un error> Error de análisis: token inesperado (34:35)
Para mí, no se ven tan diferentes, excepto que el primero tiene un operador ternario. ¿Es eso lo que está marcando la diferencia? ¿Cómo arreglar el segundo caso?
Editar : creo que el operador de propagación funciona con una expresión o declaración.
setList(list.map((list_item)=>list_item={...list_item,doubleClick:false}))Esto funciona. ¿Hay alguna forma mejor o correcta de hacerlo?
En su segundo caso, debe devolver el nuevo objeto.
setList( list.map((list_item) => { return { ...list_item, doubleClick: false }; }) ); O una forma más corta es envolver el nuevo objeto dentro ()
setList(list.map((list_item) => ({ ...list_item, doubleClick: false })));Lea más sobre la sintaxis aquí
Editar:
La sintaxis en el tercer caso está bien pero la lógica no es correcta. Desea devolver el nuevo objeto, no reasignar elementos en .map()