4 回答

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超6個(gè)贊
import { Component } from "react";
import React from "react";
const NewsItem = ({ items = [], ...props }) => {
// console.log(props.item);
const item = items.map((e) => {
return e.id;
});
console.log(items);
// console.log(props.items.title)
return <div>{item}</div>;
};
顯然你的錯(cuò)誤是在這個(gè)組件的調(diào)用者中,上面的代碼片段將用空數(shù)組替換你的道具中的任何未定義值。要修復(fù)錯(cuò)誤,您需要修復(fù)調(diào)用者或處理項(xiàng)目不是數(shù)組的事實(shí),例如:
import { Component } from "react";
import React from "react";
const NewsItem = ({ items = [], ...props }) => {
if (!Array.isArray(items)) return <span>No items found</span>;
const item = items.map((e) => {
return e.id;
});
console.log(items);
// console.log(props.items.title)
return <div>{item}</div>;
};

TA貢獻(xiàn)1890條經(jīng)驗(yàn) 獲得超9個(gè)贊
嘗試使用 React PropTypes。item
在其中為道具使用所需的架構(gòu)定義。這將幫助編譯器識(shí)別 prop 的類型。
ComponentName.propTypes = { items: PropTypes.arrayOf(arrayOf) };

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超2個(gè)贊
const NewsItem = ({ items = [] }) => {
const itemsList = items.map((item) => item.id);
return <div> { itemsList.join(', ') } </div>;
};

TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超8個(gè)贊
您收到此錯(cuò)誤是因?yàn)楫?dāng)您渲染NewsItem
道具時(shí)items
未提供或它提供的值不是數(shù)組。為避免這種情況,您可以利用propTypesitems
并在渲染組件時(shí)指定道具的默認(rèn)值NewsItem
而不傳遞道具項(xiàng)目。
const NewsItem = (props) => {
// other code goes here
return <div></div>
}
NewsItem.defaultProps = {
items: []
}
添加回答
舉報(bào)