3 回答

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超5個(gè)贊
嘗試這樣的事情:
<Menu theme="dark" mode="inline" defaultSelectedKeys={['1']}>
{data.items.map(({id, url, title}) => (
<MenuItem key={id}>
<Link to={url}> {title} </Link>
</MenuItem>
)}
</Menu>
或者,如果您想使用該函數(shù),請(qǐng)調(diào)用它:
const Generate = items =>
items.map(({id, url, title}) => (
<MenuItem key={id}>
<Link to={url}> {title} </Link>
</MenuItem>
)
;
所以: {Generate(data.items)} 傳遞參數(shù)是個(gè)好主意,因?yàn)樗?Generate 成為一個(gè)純函數(shù)!

TA貢獻(xiàn)1809條經(jīng)驗(yàn) 獲得超8個(gè)贊
.map()當(dāng)您映射對(duì)象列表時(shí),您可能想使用函數(shù),在您的情況下,為什么不嘗試這樣的事情呢?
Const Generate = () => {
{data.items.map((e,i) => (
<MenuItem key={i}>
<Link to={e.url}> {e.title} </Link>
</MenuItem>
))}
}
這應(yīng)該對(duì)你有用。

TA貢獻(xiàn)1998條經(jīng)驗(yàn) 獲得超6個(gè)贊
看起來(lái)你有正確的想法。我首先想到Generate的是一個(gè)函數(shù),但你從不調(diào)用它。相反,您有{Generate}which 直接評(píng)估函數(shù)對(duì)象,而不是它返回的內(nèi)容。相反,您可能應(yīng)該擁有{Generate()}.
我建議您通過(guò)添加更多console.log()調(diào)用來(lái)更多地調(diào)試您的代碼。閱讀本文以獲取有關(guān)調(diào)試代碼的更多提示。
我看到的另一個(gè)問(wèn)題是您的Generate()函數(shù)的語(yǔ)法:
Const Generate = () => {
{data.items.map(({id, url, title}) => (
<MenuItem key={id}>
<Link to={url}> {title} </Link>
</MenuItem>
))
console.log('lol')}
}
特別是,我認(rèn)為你有一些額外的牙套。正確的語(yǔ)法應(yīng)該是這樣的:
const Generate = () => {
console.log('lol');
return data.items.map(({id, url, title}) => (
<MenuItem key={id}>
<Link to={url}> {title} </Link>
</MenuItem>
));
}
只有一組花括號(hào)包圍了胖箭頭函數(shù)的主體。這里的語(yǔ)法是(<params>) => {<statements>}where<params>是參數(shù)<statements>列表,是要執(zhí)行的語(yǔ)句列表。
在胖箭頭函數(shù)中的語(yǔ)句周圍使用花括號(hào)時(shí),必須包含return語(yǔ)句才能返回結(jié)果。由于該console.log()聲明,這是必要的。如果只有一個(gè)語(yǔ)句,則可以刪除花括號(hào),并且單個(gè)語(yǔ)句不需要返回:
const Generate = () =>
data.items.map(({id, url, title}) => (
<MenuItem key={id}>
<Link to={url}> {title} </Link>
</MenuItem>
));
添加回答
舉報(bào)