切片返回未定义

问题描述 投票:0回答:1

我正在构建一个 Spotify 克隆网站,当我尝试使用切片方法返回一个数组时,它返回未定义并将我的 Vite 网页留空。我也尝试过使用地图,但它也返回未定义不确定问题出在代码中。下面是使用的代码以及检查页面控制台所显示内容的屏幕截图。

import React, { useContext } from "react";
import { assets, songsData } from "../assets/assets";
import { PlayerContext } from "../context/PlayerContext";

export const Player = () => {
  const { seekBar, seekBg, playStatus, play, pause, track, time, previous, next, seekSong } =
    useContext(PlayerContext);
  return (
    <div className="h-[10%] bg-black flex justify-between items-center text-white px-4">
      <div className="hidden lg:flex items-center gap-4">
        <img className="w-12" src={track.image} alt="" />
        <div>
          <p>{track.name}</p>
          <p>{track.desc.slice(0, 12)}</p>
    </div>
  </div>
  <div className="flex flex-col items-center gap-1 m-auto">
    <div className="flex gap-4 ">
      <img
        className="w-4 cursor-pointer"
        src={assets.shuffle_icon}
        alt=""
      />
      <img onClick={previous} className="w-4 cursor-pointer" src={assets.prev_icon} alt="" />
      {playStatus ? (
        <img
          onClick={pause}
          className="w-4 cursor-pointer"
          src={assets.pause_icon}
          alt=""
        />
      ) : (
        <img
          onClick={play}
          className="w-4 cursor-pointer"
          src={assets.play_icon}
          alt=""
        />
      )}

      <img onClick={next} className="w-4 cursor-pointer" src={assets.next_icon} alt="" />
      <img className="w-4 cursor-pointer" src={assets.loop_icon} alt="" />
    </div>
    <div className="flex items-center gap-5">
      <p>{time.currentTime.minute}:{time.currentTime.second}</p>
      <div
        ref={seekBg} onClick={seekSong}
        className="w-[60vw] max-w-[500px] bg-gray-300 rounded-full cursor-pointer"
      >
        <hr
          ref={seekBar}
          className="h-1 border-none w-0 bg-green-800 rounded-full"
        />
      </div>
      <p>{time.totalTime.minute}:{time.totalTime.second}</p>
    </div>
  </div>
  <div className="hidden lg:flex items-center gap-2 opacity-75">
    <img className="w-4" src={assets.plays_icon} alt="" />
    <img className="w-4" src={assets.mic_icon} alt="" />
    <img className="w-4" src={assets.queue_icon} alt="" />
    <img className="w-4" src={assets.speaker_icon} alt="" />
    <img className="w-4" src={assets.volume_icon} alt="" />
    <div className="w-20 bg-slate-50 h-1 rounded"></div>
    <img className="w-4" src={assets.mini_player_icon} alt="" />
    <img className="w-4" src={assets.zoom_icon} alt="" />
  </div>
</div>


 );
};

enter image description here

vite undefined slice
1个回答
0
投票

控制台中的错误显示“无法读取未定义的属性(读取‘切片’)”。这意味着它是您尝试应用

slice()
方法的变量,即
track.desc
或者具体来说
desc
,未定义。

检查并确保从上下文中破坏的

desc
具有正确的类型,或者进行一些稳健的编码,例如
track.desc?.slice()
(track.desc || '').slice()

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.