Я пытаюсь создать функциональность на веб-странице, которая воспроизводит mp3 с использованием React. У меня есть массив объектов, которые содержат каждую песню, обложку альбома, исполнителя, название.
Я пытаюсь выяснить, где это находится в компоненте класса React.
Что я хотел бы сделать, это передать mp3 в качестве реквизита компоненту проигрывателя, но я не могу прочитать объект внутри массива, используя эту строку:
Ошибка I получаю: TypeError: Невозможно прочитать свойство '0' из неопределенного
console.log(this.playlist[0].src);
Ниже приведен снимок моего компонента Musi c:
import React, { Component } from 'react';
import Player from '../Player';
import './Music.css';
class Music extends Component {
constructor(props) {
super(props);
this.state = {
IsPlaying: false,
currentImageShown: ''
}
let playlist = [
{
src: 'mymp3',
songPicture: 'someimage',
author: 'artistname',
title: 'songname'
},
{
src: 'mymp3',
songPicture: 'someimage',
author: 'artistname',
title: 'songname'
},
{
src: 'mymp3',
songPicture: 'someimage',
author: 'artistname',
title: 'songname'
}
];
}
handlePlayControlClick = (event) => {
event.preventDefault();
console.log('play button clicked');
// TypeError: Cannot read property '0' of undefined
console.log(this.playlist[0].src);
}
handlePauseControlClick = (event) => {
event.preventDefault();
console.log('pause button clicked');
}
handleForwardControlClick = (event) => {
event.preventDefault();
console.log('forward clicked');
}
handleBackwardControlClick = (event) => {
event.preventDefault();
console.log('backward clicked');
}
render() {
return (
<div>
<Player
onPlayClick={this.handlePlayControlClick}
onPauseClick={this.handlePauseControlClick}
onForwardControlClick={this.handleForwardControlClick}
onBackwardControlClick={this.handleBackwardControlClick}
/>
</div>
)
};
}
export default Music;
Let playlist = [array {объекты}] в неправильном месте? Любая помощь с благодарностью.