Tengo el siguiente código:
<div className=''> <div className='userLayout'> {localMessages.map((localMessage) => ( <div className={`${userId}` === `${localMessage.uuid}` ? 'fromUserLayout userCurrentLayout' : 'fromUserLayout userOtherLayout'} > <div className={`${userId}` === `${localMessage.uuid}` ? 'user userCurrent' : 'user userOther'}> <p>{localMessage.content}</p> <p>{localMessage.timestamp}</p> { localMessage?.image && localMessage.image.length > 0 && <img style={{width: '100%', height: 'auth', marginBottom: 24 }} src={localMessage.image} alt='chat' /> } </div> </div>) )} </div> que funciona, sin embargo, quiero convertir mi marca de tiempo en localMessage.timestamp a una fecha.
Sé que podría hacer esto con algo como:
let theDate = new Date(localMessage.timestamp)pero no puedo recordar (o descifrar) cómo usar JS dentro de la función de mapa.
{ let theDate = new Date(localMessage.timestamp) } pero obtuve errores de análisis en la apertura { (palabra clave inesperada 'let') y en theDate ('}' esperado)
Tu puedes hacer:
<div className=''> <div className='userLayout'> {localMessages.map((localMessage) => ( <div className={`${userId}` === `${localMessage.uuid}` ? 'fromUserLayout userCurrentLayout' : 'fromUserLayout userOtherLayout'} > <div className={`${userId}` === `${localMessage.uuid}` ? 'user userCurrent' : 'user userOther'}> <p>{localMessage.content}</p> <p>{new Date(localMessage.timestamp).toDateString()}</p> { localMessage?.image && localMessage.image.length > 0 && <img style={{width: '100%', height: 'auth', marginBottom: 24 }} src={localMessage.image} alt='chat' /> } </div> </div>) )} </div> O en lugar de usar toDateString() , puede usar toLocaleString() , toLocaleDateString() ... Hacer solo una new Date(localMessage.timestamp) podría devolver un objeto, que podría reproducir un error dentro de una etiqueta jsx.