【发布时间】:2018-09-25 20:07:21
【问题描述】:
我试图映射一个数组以获取特定值并将其输出到我的 PodcastList 组件中。
我的json(红色下划线是我想在PodcastList.js中查看的) https://itunes.apple.com/se/rss/toppodcasts/limit=100/genre=1314/explicit=true/json 这是我的 Home 组件:
import React, { Component } from 'react'
import { fetchPopularPodcasts } from './api'
import PodcastList from './PodcastList'
export default class Home extends Component {
state = {
podcasts: [],
loading: true,
}
async componentDidMount () {
const podcasts = await fetchPopularPodcasts();
this.setState({
podcasts,
loading: false,
})
}
render() {
const { podcasts } = this.state
return (
<div className='container'>
<PodcastList list={podcasts} />
</div>
);
}
}
这是我的 PodcastList 组件
import React from 'react'
import { Link } from 'react-router-dom'
import slugify from 'slugify'
const PodcastList = ({ list }) => {
return (
<div className='col-md-12'>
{list.map((pod) => {
return (
<div className='pod-box'>
GET THE LABEL?????
</div>
)
})}
</div>
)
}
export default PodcastList;
这是我的 Api.js
import Feed from 'feed-to-json-promise'
export async function fetchPopularPodcasts () {
const response = await fetch('https://itunes.apple.com/se/rss/toppodcasts/limit=100/genre=1314/explicit=true/json')
const podcasts = await response.json()
return podcasts.feed.entry
}
export async function fetchPodcast (podId) {
const response = await fetch(`https://itunes.apple.com/lookup?id=${podId}&country=se`)
const podcasts = await response.json()
return podcasts.results
}
export async function fetchPodcastEpisodes (feedUrl) {
const feed = new Feed()
const episodes = await feed.load(feedUrl)
return episodes
}
【问题讨论】:
-
您是否只是想获取 label 属性中的值数组?或者你希望你的输出具体是什么样的?
-
不,这张图片对理解没有帮助。
-
“映射通过”是什么意思?
-
如果你能创建一个Minimal, Complete, and Verifiable example,那会很有帮助。
-
假设您的数据都符合相同的结构,您可以使用
data.map(elem => elem["im:artist"].attributes.label),其中elem是每个外部对象,["im:artist"].attributes.label是您正在查找的值的固定路径对于每个对象
标签: javascript reactjs