gpt4 book ai didi

javascript - 使用 ES6 在 React 中映射对象内部的数组

转载 作者:行者123 更新时间:2023-11-30 00:10:12 25 4
gpt4 key购买 nike

我正在制作一个 React-Feed 应用程序,灵感来自 Michael's tutorial (还有 a video )我在尝试使用 Lodash's _.map 将数组作为 Prop 传递给数组时遇到了一些麻烦 |功能。这是我映射的信息:

const events = [ 
{
event: 'Gods',
venue: 'Asgard',
venuePicture: 'picture1.jpg',
when: '21:00 27/04/16',
genres: ['rock', 'funk'],
artists: [
{
artist: 'Thor',
artistPicture: 'thor.jpg'
},

{
artist: 'Loki',
artistPicture: 'loki.jpg'
}
]

},

{
event: 'Humans',
venue: 'Midgard',
venuePicture: 'picture2.jpg',
when: '21:00 27/04/16',
genres: ['jazz', 'pop'],
artists: [
{
artist: 'Human1',
artistPicture: 'human1.jpg'
},

{
artist: 'Human2',
artistPicture: 'human2.jpg'
}
]

}


];

我正在像这样传递给组件(这有效):

renderItems(){
const props = _.omit(this.props, 'events');

return _.map(this.props.events, (event, index) => <EventsFeedItem key={index} {...event} {...props}/>);

}

render() {
return (
<section>
{this.renderItems()}
</section>
);
}

这工作得很好,划分每个“事件”对象 (here's a screenshot of it working)

然后我尝试像这样解构和映射每个事件的“艺术家:”对象:

renderArtists() {

const { event, venue, venuePicture, when, genres, artists } = this.props.events;

const props = _.omit(this.props, 'events');
return _.map({artists}, (artist, index) => <ItemArtist key={index} {...artist} {...props}/>);

}

render() {
return (
<ul>
{this.renderArtists()}
</ul>
);
}

这是我得到的结果,很接近,但不是我需要的:enter image description here

我需要进一步分离它们以获得:

{artist: "Thor"} {artistPicture: "thor.jpg"}
{artist: "Loki"} {artistPicture: "loki.jpg"}

等等……

我看到这里有一个模式,我只是不知道如何进一步实现它。当我尝试重复相同的解构然后 _.map 时,它会中断。任何人都可以帮我解决这个问题,很抱歉发了这么长的帖子。

最佳答案

return _(this.props.events).flatMap('artists').map((artist, index)=><ItemArtist key={index} {...artist} {...props}/>).value();

关于javascript - 使用 ES6 在 React 中映射对象内部的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36826649/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com