亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

× TypeError: this.props.data.map 不是函數

× TypeError: this.props.data.map 不是函數

忽然笑 2023-04-27 16:17:17
我有一個 React 組件,它接收數據,通過它進行映射并打印出包含通過的對象中的數據的引導卡。但是我有一個問題,即返回的數據不允許我調用.map(報告錯誤TypeError: this.props.data.map is not a function),即使我認為console.log數據似乎是一個數組。我的代碼如下,console.log 中顯示的數據也是如此。我讀過關于 SO 的其他問題,一般答案似乎是數據不是數組——但我的似乎是。我已經嘗試將數據轉換為數組const data = Array.from(this.props.data);然后<CardDeck>{data.map(renderCard)}</CardDeck>這讓我更進一步,但后來我得到TypeError: Cannot read property '$numberDouble' of undefined與數據區域相關的錯誤,例如 "manufacturer": "Panini","number": {  "$numberDouble": "16"},誰能建議我在這里做錯了什么?我從 props 獲取數據,而不是從 state - 見下圖我還可以通過以下方式將數據打印到屏幕上return (      <Container>        <h1>Hello {JSON.stringify(this.props.data)}</h1>        {/* <CardDeck>{this.props.data.map(renderCard)}</CardDeck> */}        {/* <CardDeck>{data.map(renderCard)}</CardDeck> */}      </Container>    );
查看完整描述

3 回答

?
楊魅力

TA貢獻1811條經驗 獲得超6個贊

首先,初始化一個arraywithnull不是一個好習慣。


而是嘗試使用預期的類型初始化數據。


this.state = {

? loading: false,

? error: "",

? data: [],

? username: "",

};

Cannot read property X of null.undefined另一件事是,在現代 JS (ECMA2020) 中,您可以通過使用optional chaining來防止獲得 an?。


<CardDeck>{this.props.data?.map(renderCard)}</CardDeck>


查看完整回答
反對 回復 2023-04-27
?
翻閱古今

TA貢獻1780條經驗 獲得超5個贊

我認為您以錯誤的方式調用地圖,您是否嘗試將其顯示為箭頭函數this.state.data.map((renderCard) => renderCard))?



查看完整回答
反對 回復 2023-04-27
?
慕哥6287543

TA貢獻1831條經驗 獲得超10個贊

嘗試將數據初始化為空數組

this.state = { loading: "", error: "", data: [], username: "", }; }  我希望這對你有幫助


查看完整回答
反對 回復 2023-04-27
  • 3 回答
  • 0 關注
  • 185 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號