我正在尝试使用webtorrent桌面的基本代码,在这里您可以检查我的分支的代码: https://github.com/refreex/webtorrent-desktop
它使用Node.js和Electron
我面临的问题是创建一个名为playlists-controller.js
的新控制器,并且需要在名为getAllPlaylists
的React组件中使用一个名为playlists-list.js
的函数
我正在尝试使用以前使用过的相同概念,但是我不明白如何在React组件内部的控制器中调用该函数。
有一个名为main.js
的文件,其中列出了控制器具有的所有类似功能:
//Playlists
'createPlaylist': (name) => controllers.playlists().createPlaylist(name),
'addAlbumToPlaylist': (infoHash, files) => controllers.playlists().addAlbumToPlaylist(infoHash, files),
'addSongToPlaylist': (infoHash, file) => controllers.playlists().addSongToPlaylist(infoHash, file),
'getAllPlaylists': () => controllers.playlists().getAllPlaylists(),
在应用程序中,有很多使用调度程序的呼叫,但我认为大多数用于事件,但我不确定。
所以基本上在页面playlists-list.js
中,我需要调用getAllPlaylists
中的函数playlists-controller.js
有什么好的方法?
谢谢。
答案 0 :(得分:0)
这可以通过两种方式完成。一种,将功能作为道具传递给该组件,或者我们可以导出getAllPlaylist方法并通过导入到playlists-lists组件中来使用它。希望这可以帮助您解决问题。
方法1:
class PlaylistController extends React.Component {
getAllPlaylist = () => {
alert('Do Something Here As Per Your Requirement!')
}
render () {
return (
<container>
<PlaylistList sendFunction={this.getAllPlaylist} />
</container>
)
}
}
PlaylistList类扩展了React.Component {
render () {
return (
<div>
<button onClick={this.props.sendFunction}>Click Here To Call Playlist-list Function</button>
</div>
)
}
}
方法2:
class PlaylistController extends React.Component {
export const getAllPlaylist = ()=>{
//do something as per the requirement
}
}
import {getAllPlaylist} from './playlistController'
class PlaylistList extends React.Component {
handleClick = () => {
getAllPlaylist();
}
render () {
return (
<div>
<button onClick={this.handleClick}>Click Here To Call Playlist-list Function</button>
</div>
)
}
}