reactjs - 如何突出显示正在播放的当前歌曲
问题描述
这是显示我的播放列表的代码。
{data?.map((data, index) => {
return(
<li
onClick={(e) => {
e.preventDefault()
setActive(true)
store.addSong(data.assets[0].audio)
store.addImage(data.photo)
store.addName(data.name)
store.addSongIndex(index)
}}
className={!store.song ? "" : "active"}
key={data?.id}>
<div className="plItem">
<span className="trackNumber">{index + 1}</span>
<span className="trackTitle">
<WordLimit limit={35}>
{data ? data.name : "word"}
</WordLimit>
</span>
</div>
</li>
)
}
)}
因此,onclick 函数将当前歌曲发送到音频源,更新歌曲的图像,但我想突出显示当前正在播放的歌曲,我希望能够添加可能适用于歌曲的动态类名正在播放列表中播放的歌曲,简而言之,它只是将当前播放的歌曲与未播放的歌曲区分开来。
我尝试动态添加一个名为 active 的类名,但它只得到一个<li></li>
它得到了所有,这不是我想要的。这是我尝试做的方法..
className={!store.song ? "" : "active"}
解决方案
您可以做的是,在您的className
逻辑中,将当前歌曲与商店中的歌曲进行比较。如果它们相等,那就是突出显示的类:
className={store.song === data.song ? "highlight" : undefined}
这是在上下文中:
{data?.map((data, index) => {
return(
<li
onClick={(e) => {
e.preventDefault()
setActive(true)
store.addSong(data.assets[0].audio)
store.addImage(data.photo)
store.addName(data.name)
store.addSongIndex(index)
}}
className={store.song === data.song ? "highlight" : undefined}
key={data?.id}
>
<div className="plItem">
<span className="trackNumber">{index + 1}</span>
<span className="trackTitle">
<WordLimit limit={35}>
{data ? data.name : "word"}
</WordLimit>
</span>
</div>
</li>
)})}
推荐阅读
- r - 将多个图像组合在一起
- r - 如何阻止 renderTable 默认为小数点后 2 位?
- bash - 在 docker compose build 期间运行 git clone 和 rsync bash 脚本
- java - 错误:发生 JNI 错误,请检查您的安装并重试
- sql - 使用 like '%' 并将 NULL 值与 NUMBER 列匹配
- python - python pandas groupby:用于分组的删除列
- java - Install4j:添加没有重复的xml
- jquery - 如何在可放置 jquery 中获取已删除元素 li 的索引(项目的位置,例如 1,2,3 ...)?
- aurelia - 在 Aurelia 中使用 bootstrap-tour
- intellij-idea - Intellij IDEA 2019.1:什么是“从...合并”的键盘快捷键(Subversion 工作副本信息)?