小编Gab*_*mas的帖子

将反应类组件转换为功能组件,渲染完美但功能丢失?

我正在制作一个小型音频播放器应用程序并尝试将我的反应类组件转换为功能组件。

类组件的原始代码在这里:

class Player extends React.Component {

    constructor(){
    super()

    this.state = {
        tracks: [
          {title: "first track", data: track1},
          {title: "second track", data: track2},
          {title: "third track", data: track3},
        ],
        currentTrack: 0,
    }

    }

     changeData(trackIndex){
      this.setState({currentTrack: trackIndex})
    }
  
    render(){
        return <div style={{color: this.props.color}}>
            <h1>Player</h1>
           <AudioPlayer
            src= {this.state.tracks[this.state.currentTrack].data}
            />
            <div style={{color: "green"}}>
                <ul>
                    {this.state.tracks.map((trackElem, index) => (
                       <li onClick={()=> this.changeData(index)}>{trackElem.title}</li>
                    ))}
                </ul>
            </div>
        </div>
    }
}
Run Code Online (Sandbox Code Playgroud)

我尝试了以下转换:

const Player2 = () => {

   const Items = [
          {title: "first track", data: …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-hooks react-class-based-component

0
推荐指数
1
解决办法
29
查看次数