幾周前我剛剛開始學習 React。所以,如果我問一個非常籠統的問題,我很抱歉。但是,如果您能幫助我,我將不勝感激!
問題:無法讀取未定義的屬性(讀取“DateTime”)
我嘗試解決的問題:首先,我嘗試一般解決它。我的意思是我添加了條件來處理我的代碼并重新渲染。另外,我檢查資料是否存在。
代碼
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 就是這個

- 我的期望:我添加 if 陳述句
if (weekendData && weekendData.event && weekendData.schedule)
所以,我認為這應該可行,因為如果沒有資料,則不應該執行下一行。我不知道為什么我的代碼不能接近周末資料。事件。日期時間......

uj5u.com熱心網友回復:
for回圈無法讀取未定義的屬性。dataWeekendLength有 7 個長度,但從weekendData.event陣列中只有 1 個長度。
看 WeekendData.schedule.length
...
schedule: Array(7)
這是for代碼中的回圈,
for (let i = 0; i <= dataEventLength; i ) {
eventArray.push(weekendData.event[i].DateTime.split("T")[0]);
}
在for對回圈7次dataEventLength,
這是weekendData.event,
...
event: Array(1)
如果for回圈繼續,i = 1那么它將是weekendData.event[1]。
但沒有weekendData.event[1]但只有weekendData.event[0].
代碼可以作業,但陣列只有一個。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/389466.html
標籤:javascript 反应
