第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

在 React 中不使用條件渲染時(shí)無(wú)法讀取屬性“地圖”

在 React 中不使用條件渲染時(shí)無(wú)法讀取屬性“地圖”

瀟湘沐 2022-06-16 14:36:44
我試圖渲染這段代碼,.map()但日期時(shí)出現(xiàn)錯(cuò)誤。(第 50 行):無(wú)法讀取未定義的屬性“地圖”在我使用條件渲染后{dates && dates.map((item) => <DateItem item={item} />)} ,渲染成功。我不明白的是為什么我應(yīng)該使用日期。當(dāng)我只渲染 line47 和 line48 時(shí),我不需要使用條件渲染。是渲染速度的問(wèn)題嗎?如果我使用條件渲染,日期狀態(tài)何時(shí)生成?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;
查看完整描述

2 回答

?
斯蒂芬大帝

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊

問(wèn)題是.map()只能在數(shù)組上調(diào)用。也是異步setDates發(fā)生的,這就是為什么您在組件中的第一次渲染中具有價(jià)值。您可以設(shè)置默認(rèn)的空數(shù)組值?;蛘吣梢詼y(cè)試它是否具有 then或with以外的值。undefineddatesdatesuseState([])datesnullundefined&&


嘗試以下操作:


const [dates, setDates] = useState([]);

或檢查nullorundefined值:


{dates && dates.map((item) => (

   <DateItem item={item} />

))}

我希望這有幫助!


查看完整回答
反對(duì) 回復(fù) 2022-06-16
?
蕭十郎

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超13個(gè)贊

發(fā)生這種情況dates的設(shè)置為在開(kāi)始時(shí)沒(méi)有任何內(nèi)容作為默認(rèn)值undefined傳遞。useState()您可以通過(guò)將空數(shù)組[]作為初始值傳遞來(lái)輕松解決此問(wèn)題,例如:

const [dates, setDates] = useState([]);


查看完整回答
反對(duì) 回復(fù) 2022-06-16
  • 2 回答
  • 0 關(guān)注
  • 132 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)