1
我正在與反應原生應用程序,將有一個音頻播放器,該音頻播放器將有它的視圖,其控制器(播放,停止,跳過......)我怎麼過需要這個音頻播放器可以是由多個組件控制。現在我正在使用redux來管理包含播放器狀態(isPlaying,currentTrack ...)的應用程序狀態。使用反應-終極版時調用來自另一組件的部件的方法?
所以我的問題是,如何是最好的或其他組件來執行在玩家行動的好辦法?
我正在與反應原生應用程序,將有一個音頻播放器,該音頻播放器將有它的視圖,其控制器(播放,停止,跳過......)我怎麼過需要這個音頻播放器可以是由多個組件控制。現在我正在使用redux來管理包含播放器狀態(isPlaying,currentTrack ...)的應用程序狀態。使用反應-終極版時調用來自另一組件的部件的方法?
所以我的問題是,如何是最好的或其他組件來執行在玩家行動的好辦法?
用於控制行爲的常見模式是通過行爲(功能)經由道具到其他組件倒。
在你的媒體播放器的共享控制的情況下,你可能會與這種架構(僞)的東西:
togglePlayer(){
this.setState(state=>({playing: !state.playing}))
//or
dispatch(togglePlayerActionCreator())
}
<Player isPlaying={this.state.playing} />
<ThingThatControlsPlayer onSomeEvent={this.togglePlayer} />
<ThingThatControlsPlayer onSomeEvent={this.togglePlayer} />
在這種情況下,是每一個同級組件可以訪問一個共同的功能,通過作爲道具傳遞的函數。作爲該函數被調用的結果,玩家然後會對一些狀態改變作出反應。這是否是傳入成分作爲道具內部組件狀態或終極版店,圖案是相同的。請記住,與反應+終極版架構狀態流下來,事件流程起來