Quiero actualizar el objeto todos los elementos uno por uno en el mapa, está actualizando solo un elemento del objeto, no todos
const [docUrls, setDocUrls] = useState({ imageUrl: "", panUrl: "",statementUrl: "" })respuesta de api
res.data.map(item=>{ if(item.type === 'image'){ setDocUrls({...docUrls, imageUrl:item.url}) }else if(item.type === 'pan'){ setDocUrls({...docUrls, panUrl:item.url}) }else setDocUrls({...docUrls, statementUrl:item.url}) }})setDocUrls es asincrónico, por lo que solo sobrescribe docUrls cada vez que lo llama.
Tener múltiples setDocUrls({...docUrls, imageUrl:item.url}) seguirá sobrescribiendo la llamada anterior debido a ...docUrls .
En su lugar, haga una copia de docUrl.
const docUrlCopy = { ...docUrls } res.data.map(item=>{ if(item.type === 'image'){ docUrlCopy.imageUrl = item.url }else if(item.type === 'pan'){ docUrlCopy.panUrl = item.url }else docUrlCopy.statementUrl = item.url }}) setDocUrls(docUrlCopy) // only 1 call