我正在尝试使用webtorrent桌面的基本代码,在这里你可以检查我的分支的代码:https://github.com/refreex/webtorrent-desktop
它使用节点.js和电子
我面临的问题是我创建了一个名为 playlists-controller.js
的新控制器,并且有一个名为 getAllPlaylists
的函数,我需要在一个名为 playlists-list.js
的 React 组件中使用
我正在尝试使用以前使用的相同概念,但我不明白如何从 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
的好方法是什么?
提前谢谢。
这可以通过两种方式完成。第一,将函数作为 props 传递给该组件,或者我们可以导出 getAllPlaylist 方法并通过导入播放列表列表组件来使用它。我希望这能帮助您解决问题。
方法一:
class PlaylistController extends React.Component {
getAllPlaylist = () => {
alert('Do Something Here As Per Your Requirement!')
}
render () {
return (
<container>
<PlaylistList sendFunction={this.getAllPlaylist} />
</container>
)
}
}
类播放列表列表扩展了 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>
)
}
}