Si agrego editedAt
, arrojará este error:
failed to fetch data TypeError: Cannot read properties of undefined (reading 'seconds')
sin embargo, si elimino los datos donde tiene el valor de marca de tiempo de editedAt
de la base de datos. Esto no causará un error. ¿Esto se debe a que no todos los datos tienen un valor de marca de tiempo de editedAt
?
¿Cómo soluciono este error ya que también necesito mostrar los datos con editedAt
?
Y estos son los datos:
const data = [ { createdDate: { seconds: 1647660530, nanoseconds: 228000000 }, id: "4jnEbtIGLKTgEnJYX7ci" }, { editedAt: { seconds: 1647665687, nanoseconds: 627000000 }, id: "vBBeIQsNbqvbqVWNIK6k" }, { createdDate: { seconds: 1646370332, nanoseconds: 678000000 }, id: "Hs29gnvfeD0cSQkNmsRn" }, { createdDate: { seconds: 1645840425, nanoseconds: 486000000 }, id: "gagdiaihdihaihsd" } ];
Estos son los codigos:
const columns = [ { name: "createdDate", label: "Date", options: { filter: true, sort: true, customBodyRender: (value, tableMeta, updateValue) => { return new Date(value.seconds * 1000).toLocaleDateString(); }, }, }, { name: "editedAt", label: "Edited Date", options: { filter: true, sort: true, customBodyRender: (value, tableMeta, updateValue) => { return new Date(value.seconds * 1000)?.toLocaleDateString(); }, }, }, ];
Cada elemento de su conjunto de datos debe tener los campos "fecha de creación" y "fecha de edición".
Si no desea hacer eso, use el opcional? operador para no manejar datos o comprobar el valor:
if (value) { ... do render } else { ... do something else }
value?.seconds podría devolver indefinido o acceder a la propiedad de segundos.