Hi! I’m doing my third Front-end project so far.
I think I’m missing something to pass 7th test.
My codepen link is here.
I did my
const audioList = [
{id:'Heater-1', letter: 'Q', keycode: 81, src:"https://s3.amazonaws.com/freecodecamp/drums/Heater-1.mp3"},
{id:'Heater-2', letter: 'W', keycode:87, src:"https://s3.amazonaws.com/freecodecamp/drums/Heater-2.mp3"},
{id:'Heater-3', letter: 'E', keycode: 69, src:"https://s3.amazonaws.com/freecodecamp/drums/Heater-3.mp3"},
{id:'heater-4_1', letter: 'A', keycode: 65, src:"https://s3.amazonaws.com/freecodecamp/drums/Heater-4_1.mp3"},
{id:'Heater-6', letter: 'S', keycode: 83, src :"https://s3.amazonaws.com/freecodecamp/drums/Heater-6.mp3"},
{id:'Dsc_Oh', letter: 'D', keycode: 68, src:"https://s3.amazonaws.com/freecodecamp/drums/Dsc_Oh.mp3"},
{id:'Kick-n-Hat', letter: 'Z', keycode: 90, src: "https://s3.amazonaws.com/freecodecamp/drums/Kick_n_Hat.mp3"},
{id:'RP4_KICK_1', letter: 'X', keycode: 88, src:"https://s3.amazonaws.com/freecodecamp/drums/RP4_KICK_1.mp3"},
{id:'Cev_H2', letter:'C', keycode: 67, src:"https://s3.amazonaws.com/freecodecamp/drums/Cev_H2.mp3"}]
class DrumMachine extends React.Component {
constructor(props){
super(props);
this.state = {
clickedButton: 'CLICK BUTTON OR PUSH THE KEY'
}
}
render(){
return(
<div>
<div id="display" className="inner-container">
<h5>{this.state.clickedButton}</h5>
</div>
<div>
{audioList.map(item =>
<button
className='drum-pad'
id={item.id}
onClick={function(){
const sound = document.getElementById(item.letter)
sound.play()
this.setState({
clickedButton: item.letter
})
}.bind(this)}
onKeyPress={function(event){
if(event.keyCode === item.keycode){
const sound = document.getElementById(item.letter)
sound.play()
this.setState({
clickedButton: item.letter
})
}
}}
>
<audio
className='clip'
id={item.letter}
src={item.src}/>
{item.letter}
</button>
)}
</div>
</div>
);
}
};
ReactDOM.render(<DrumMachine />, document.getElementById('drum-machine'));
and my problem now is
onKeyPress={function(event){
if(event.keyCode === item.keycode){
const sound = document.getElementById(item.letter)
sound.play()
this.setState({
clickedButton: item.letter
})
}
}}
here. I don’t know how to make it work.
It would be really lovely if somebody makes me realize what I’m doing wrong now.
Thank you in advance!