【问题标题】:Functional component is not being rendered功能组件未呈现
【发布时间】:2021-02-27 12:54:17
【问题描述】:

我正在尝试显示歌曲,但由于某种原因,我的歌曲组件甚至没有被执行。 Songs 组件中的 console.log 语句也没有被记录到控制台。也根本没有检测到任何类型的错误。

这是我调用 Songs 组件的 body 组件




import './body.css'
import React from 'react'
import Header from './Header'
import { useStateValue } from './StateProvider';
import FavoriteIcon from '@material-ui/icons/Favorite';
import PlayCircleFilledIcon from '@material-ui/icons/PlayCircleFilled';
import MoreHorizIcon from '@material-ui/icons/MoreHoriz';
import Songs from './Songs.js'

function Body( {spotify}) {
    const [{recently_played},dispatch] = useStateValue();
    return (
        <div className="body">
           <Header spotify={spotify}   />

           <div className="body__info">
               <img src={recently_played?.images[0].url} alt=""/>
               <div className="body__infotext">
                   <strong>PLAYLIST</strong>
                    <h2>On Repeat</h2>
                    <p>{recently_played?.description}</p>
               </div>
           </div>
           <div className="body__songs">
               <div className="body__icons">
                   <PlayCircleFilledIcon className="body__shuffle"/>
                   <FavoriteIcon fontSize="large"/>
                   <MoreHorizIcon />
               </div>

               {recently_played?.tracks.items.map(item=>{
                   
                   <Songs track={item.track} />
                  
               })}
           </div>

        </div>
    )
}

export default Body


这是歌曲组件

import React from "react";
import './SongRow.css'

function Songs({ track }) {
  console.log(track);
  return (
    <div className="songRow" >
      <img className="songRow__album" src={track.album.images[0].url} alt="" />
      <div className="songRow__info">
        <h1>{track.name}</h1>
        <p>
          {track.artists.map((artist) => artist.name).join(", ")} -{" "}
          {track.album.name}
        </p>
      </div>
    </div>
  );
}

export default Songs;

【问题讨论】:

  • 也许recently_played?.tracks.items 是一个空数组?你有没有做过任何调试来找出答案?
  • 不为空。我检查了

标签: javascript reactjs spotify


【解决方案1】:

你没有返回地图内的任何东西

   {recently_played?.tracks.items.map(item => {
          return <Songs track={item.track} />;
       })}

 

[或]使用箭头函数的简写版本

   {recently_played?.tracks.items.map(item => <Songs track={item.track} />)}

【讨论】:

  • 是的,这行得通。我不敢相信我错过了。非常感谢
猜你喜欢
  • 2021-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-11
  • 1970-01-01
  • 2014-08-12
  • 2017-12-03
相关资源
最近更新 更多