Tengo un objeto como este:
{ name:"lorem ipsum", skills:[] }Ahora, tengo un formulario donde los usuarios agregan sus habilidades y quiero actualizar el objeto usando usestate hook de acuerdo con la entrada de ese formulario
Por ejemplo, si el usuario agrega HTML, CSS y JavaScript en el formulario, el objeto debería verse así:
{ name:"lorem ipsum", skills:['html','css','JavaScript'] }¿Cómo puedo conseguir esto?
Puede separar el nombre y las habilidades en dos variables diferentes, pero si insiste en mantenerlo como un solo objeto, esto es lo que puede hacer:
const [obj, setObj] = useState({name:"lorem ipsum",skills:[]}Para inicializar su estado, digamos que la lista de habilidades que recibe del formulario se llama form_skills:
setObj({...obj, skills: form_skills}) Esto hace uso del spread operator que básicamente copia su objeto en uno nuevo y reemplaza todos los valores con las claves que define después, en este caso solo habilidades (o agrega al objeto).