我試圖渲染這段代碼,.map()但日期時出現錯誤。(第 50 行):無法讀取未定義的屬性“地圖”在我使用條件渲染后{dates && dates.map((item) => <DateItem item={item} />)} ,渲染成功。我不明白的是為什么我應該使用日期。當我只渲染 line47 和 line48 時,我不需要使用條件渲染。是渲染速度的問題嗎?如果我使用條件渲染,日期狀態何時生成?import React, { useState, useEffect } from "react";const DateItem = ({ item }) => { return ( <div> <div>{item.day}</div> <div>{item.date}</div> </div> );};const Dates = () => { const [date, setDate] = useState(); const [day, setDay] = useState(); const [dates, setDates] = useState(); const getDateArr = () => { let arr = []; var weekday = new Array(7); weekday[0] = "sunday"; weekday[1] = "monday"; weekday[2] = "tuesday"; weekday[3] = "wednesday"; weekday[4] = "thursday"; weekday[5] = "friday"; weekday[6] = "saturday"; for (let i = 0; i < 31; i++) { let d = new Date(); d.setDate(d.getDate() - i); let date = d.getDate(); let day = weekday[d.getDay()]; arr.push({ day, date }); } // console.log(arr); return arr; }; useEffect(() => { setDate(new Date().getFullYear()); setDay(new Date().getMonth()); setDates(getDateArr()); }, []); return ( <> <div className="dateSection"> <div className="head">??</div> <div className="year">{date}</div> // line47 <div className="month">{day}</div> <div className="dates"> {dates.map((item) => ( // <=error line50 <DateItem item={item} /> ))} </div> </div> </> );};export default Dates;
在 React 中不使用條件渲染時無法讀取屬性“地圖”
瀟湘沐
2022-06-16 14:36:44