3 回答

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊
我不確定這是否是您組件的全部代碼,但我可以看到三件事。
如果
newsFeed
在組件首次渲染時(shí)未初始化(假設(shè)它尚未定義),newsFeed.map()
則將拋出異常。您不會(huì)從地圖調(diào)用中返回任何內(nèi)容。你應(yīng)該這樣寫(xiě):
newsStorys = () => {
if (!this.state.newsFeed) return null;
return this.state.newsFeed.map((a) => ({ // <--- note the parentheses here, you don't have it
<View style={ModalStyles.newsArticle}>
<Text style={ModalStyles.newsDate}>{a.date}</Text>
<Text style={ModalStyles.newsTitle}>{a.title}</Text>
<Text style={ModalStyles.newsDesc}>
{a.story}
</Text>
</View>
});
);
};
如果你想避免括號(hào),那么你需要明確地返回一些東西,就像這樣:
this.state.newsFeed.map((a) => {
return (
<View style={ModalStyles.newsArticle}>
<Text style={ModalStyles.newsDate}>{a.date}</Text>
<Text style={ModalStyles.newsTitle}>{a.title}</Text>
<Text style={ModalStyles.newsDesc}>
{a.story}
</Text>
</View>
);
});
您可能需要一個(gè)額外的視圖來(lái)包裝 map 返回的視圖列表。
您還需要為每個(gè)視圖提供一個(gè)唯一的鍵,以便 React 可以跟蹤它們。
<View style={ModalStyles.newsArticle} key={'nome unique value'}>
...
</View>
最后我認(rèn)為使用 aFlatList而不是map.
干杯!

TA貢獻(xiàn)1788條經(jīng)驗(yàn) 獲得超4個(gè)贊
在網(wǎng)上玩了一圈,并進(jìn)行了很好的挖掘,找到了語(yǔ)法答案:(感謝 Bruno 提供的關(guān)鍵和指針)。
newsStorys = () => {
return this.state.newsFeed.map((value, index) => {
return (
<View style={ModalStyles.newsArticle} key={index}>
<Text style={ModalStyles.newsDate}>{value.date}</Text>
<Text style={ModalStyles.newsTitle}>{value.title}</Text>
<Text style={ModalStyles.newsDesc}>{value.story}</Text>
</View>
);
});
};

TA貢獻(xiàn)1872條經(jīng)驗(yàn) 獲得超4個(gè)贊
嘗試這個(gè)
newsStorys = () => (
this.state.newsFeed.map(({ date, story, title }, index) =>
<View key={`news-${index}`} style={ModalStyles.newsArticle}>
<Text style={ModalStyles.newsDate}>{date}</Text>
<Text style={ModalStyles.newsTitle}>{title}</Text>
<Text style={ModalStyles.newsDesc}>{story}</Text>
</View>
));
添加回答
舉報(bào)