首页 > 解决方案 > Reactjs 未处理的拒绝(TypeError):无法使用 spotify api 读取未定义的属性“地图”

问题描述

我无法意识到我的 api 获取有什么问题。冷你请阅读代码,看看发生了什么。我初始化了变量,但仍然未定义属性映射。错误在第 6 行 let trackDataPromises =playlists.map

fetch('https://api.spotify.com/v1/me/playlists', {
  headers: {'Authorization': 'Bearer ' + accessToken}
}).then(response => response.json())
.then(playlistData => {
  let playlists = playlistData.items
  let trackDataPromises = playlists.map(playlist => {
    let responsePromise = fetch(playlist.tracks.href, {
      headers: {'Authorization': 'Bearer ' + accessToken}
    })
    let trackDataPromise = responsePromise
      .then(response => response.json())
    return trackDataPromise
  })
  let allTracksDataPromises = 
    Promise.all(trackDataPromises)
  let playlistsPromise = allTracksDataPromises.then(trackDatas => {
    trackDatas.forEach((trackData, i) => {
      playlists[i].trackDatas = trackData.items
        .map(item => item.track)
        .map(trackData => ({
          name: trackData.name,
          duration: trackData.duration_ms / 1000
        }))
    })
    return playlists
  })
  return playlistsPromise
})
.then(playlists => this.setState({
  playlists: playlists.map(item => {
    return {
      name: item.name,
      imageUrl: item.images[0].url, 
      songs: item.trackDatas.slice(0,3)
    }
})
}))

标签: reactjsapi

解决方案


推荐阅读