Estoy aprendiendo React hace unas semanas. Entonces, si hago una pregunta bastante general, lo siento. Pero, ¡sería muy apreciado si me ayudas!
Problema: no se pueden leer las propiedades de undefined (leyendo 'DateTime')
Lo que trato de resolverlo: en primer lugar, traté de resolverlo en general. Quiero decir que agrego la condición para progresar en mi código y volver a renderizar. Además, compruebo que los datos existen o no.
Código
const changeWeekendDateColor = () => { let eventArray = []; let weekendArray = []; if (weekendData && weekendData.event && weekendData.schedule) { let status = false; const dataEventLength = weekendData.event.length; const dataWeekendLength = weekendData.schedule.length; for (let i = 0; i <= dataEventLength; i++) { eventArray.push(weekendData.event[i].DateTime.split("T")[0]); } for (let i = 0; i <= dataWeekendLength; i++) { weekendArray.push(weekendData.schedule[i].split(" ")[0]); } } for (let i = 0; i <= eventArray.length; i++) { if (weekendArray.includes(eventArray[i])) return (status = false); } return status; }; console.log(changeWeekendDateColor(weekendData));WeekendData es este
if (weekendData && weekendData.event && weekendData.schedule)Entonces, creo que esto debería funcionar porque si no hay datos, no debería pasar a la siguiente línea. No estoy seguro de por qué mi código no pudo acercarse a weekendData.event.DateTime...
for loop no puede leer la propiedad indefinida. dataWeekendLength tiene 7 longitudes pero weekendData.event solo tiene 1 longitud de la matriz.
Ver WeekendData.schedule.length
... schedule: Array(7) Y esto es for bucle en el código,
for (let i = 0; i <= dataEventLength; i++) { eventArray.push(weekendData.event[i].DateTime.split("T")[0]); } El bucle for 7 veces para dataEventLength ,
Es weekendData.event ,
... event: Array(1) Si el bucle for continúa i = 1 , entonces será weekendData.event[1] .
Pero no hay weekendData.event[1] sino solo weekendData.event[0] .
El código funcionaría pero la matriz solo tiene uno.