Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

131
Views
Hacer que un valor de un objeto sea nulo en una lista de objetos en javascript

Tengo una lista de objetos almacenados en un estado llamado itemsToUpload . Hay un botón para subir la lista de objetos a una base de datos. El siguiente es un objeto en la lista.

 { type:"Fiat", model:"500", color:"white", imgUrl="https://latestlyhunt.com/wp-content/uploads/2021/03/Fiat-made-a-%E2%80%98Hey-Google-car.jpg" };

Al enviar los datos a la base de datos, quiero que imgUrl nulo.

El siguiente código es cómo configuro imgUrl en nulo.

 const submitHandler =async()=>{ setitemsToUpload((items)=> items.map((item)=>({ ...item, imgUrl:null }))) const response =await axios.post("api url",itemsToUpload) console.log(response ) }

Después de convertir imgUrl en nulo, el estado de itemsToUpload cambia, pero los datos que se envían a la API indican que imgUrl no es nulo

Cuál es el problema aquí?

about 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Array.map no modifica la matriz, crea una nueva matriz con el valor devuelto, por lo que debe asignar el resultado de su mapa a la matriz

 const items = [ { type:"Fiat", model:"500", color:"white", imgUrl:"https://latestlyhunt.com/wp-content/uploads/2021/03/Fiat-made-a-%E2%80%98Hey-Google-car.jpg" } ] const modifiedItems = items.map((item)=>({ ...item, imgUrl:null })) console.log(items) console.log(modifiedItems)

about 4 years ago · Santiago Trujillo Report

0

El código está funcionando aquí. Así que no estoy seguro de si el problema pertenece a esta parte.

 const array = [{ type:"Fiat", model:"500", color:"white", imgUrl:"https://latestlyhunt.com/wp-content/uploads/2021/03/Fiat-made-a-%E2%80%98Hey-Google-car.jpg" }, { type:"Fiat", model:"500", color:"white", imgUrl:"https://latestlyhunt.com/wp-content/uploads/2021/03/Fiat-made-a-%E2%80%98Hey-Google-car.jpg" }, { type:"Fiat", model:"500", color:"white", imgUrl:"https://latestlyhunt.com/wp-content/uploads/2021/03/Fiat-made-a-%E2%80%98Hey-Google-car.jpg" }]; console.log(array); const clearIt = array => { return array.map(item => { item.imgUrl = null return item; }); }; const newArray = clearIt(array); console.log(newArray);

about 4 years ago · Santiago Trujillo Report

0

En su código, setitemsToUpload no muta inmediatamente los elementos para itemsToUpload sino que le dice a React que programe una actualización de estado y vuelva a renderizar, mientras que submitHandler continúa ejecutándose y llama a axios.post antes de que se actualicen los elementos para itemsToUpload .

Intenta refactorizarlo así:

 const submitHandler = async () => { const newItemsToUpload = items.map((item) => ({ ...item, imgUrl: null })) setitemsToUpload((items) => newItemsToUpload) const response = await axios.post("api url", newItemsToUpload) console.log(response) }
about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!