Javascript 在另一个函数内传递函数
我得到了下面的组件,它呈现一个音频播放器。冥想列表函数为我提供了要动态播放的文件的位置,音频函数是播放器的功能 我想做的是传递冥想列表返回的曲目播放器url 多谢各位Javascript 在另一个函数内传递函数,javascript,reactjs,react-native,Javascript,Reactjs,React Native,我得到了下面的组件,它呈现一个音频播放器。冥想列表函数为我提供了要动态播放的文件的位置,音频函数是播放器的功能 我想做的是传递冥想列表返回的曲目播放器url 多谢各位 export default class Player extends React.Component<Props> { meditationList = () => { const adress = this.props.route.params; return JSON.stringi
export default class Player extends React.Component<Props> {
meditationList = () => {
const adress = this.props.route.params;
return JSON.stringify(adress.meditation.meditationPlayerAdress);
};
audio = () => {
TrackPlayer.setupPlayer().then(async () => {
// Adds a track to the queue
await TrackPlayer.add({
id: 'trackId',
url: this.require(meditationList()),
title: 'Track Title',
artist: 'Track Artist',
});
let trackId = await TrackPlayer.getCurrentTrack();
// Starts playing it
TrackPlayer.play();
});
};
pause = () => {
TrackPlayer.pause();
};
stop = () => {
TrackPlayer.stop();
};
render() {
return (
....)}}}
导出默认类Player扩展React.Component{
冥想列表=()=>{
常量地址=this.props.route.params;
返回JSON.stringify(地址.冥想.冥想PlayerAddress);
};
音频=()=>{
TrackPlayer.setupPlayer()。然后(异步()=>{
//将轨迹添加到队列中
等待TrackPlayer.add({
id:'trackId',
url:this.require(冥想列表()),
标题:“曲目标题”,
艺术家:“轨迹艺术家”,
});
让trackId=wait TrackPlayer.getCurrentTrack();
//开始演奏
TrackPlayer.play();
});
};
暂停=()=>{
TrackPlayer.pause();
};
停止=()=>{
TrackPlayer.stop();
};
render(){
返回(
....)}}}
您好,请按以下方式更改您的代码
url:require('../../../assets/track.mp3')
更改为url:this.require(冥想列表()),
导出默认类Player扩展React.Component{
冥想列表=()=>{
常量地址=this.props.route.params;
返回JSON.stringify(地址.冥想.冥想PlayerAddress);
};
音频=()=>{
TrackPlayer.setupPlayer()。然后(异步()=>{
//将轨迹添加到队列中
等待TrackPlayer.add({
id:'trackId',
url:require(this.冥想列表()),
标题:“曲目标题”,
艺术家:“轨迹艺术家”,
});
让trackId=wait TrackPlayer.getCurrentTrack();
//开始演奏
TrackPlayer.play();
});
};
暂停=()=>{
TrackPlayer.pause();
};
停止=()=>{
TrackPlayer.stop();
};
render(){
返回(
....)}}}
您好,谢谢您的回复,我按照您的指示操作,收到以下警告:可能未经处理的承诺拒绝,引用错误找不到变量:meditaitonList\u调用问题是我已控制台日志函数正在给我一个路径,如果我将该路径放入URL中,则该路径正在工作,但是,如果在url中放置函数不起作用。您好,您可以将地址冥想冥想PlayerAddress的控制台日志和地址冥想PlayerAddress的值以及控制台日志(地址冥想冥想冥想PlayerAddress)与“../../assets/track.mp3”相等吗如果我把这个值放在url中,它就工作了,地址类型是object,因此它已经是一个字符串了,没有必要把它当作一个JSON,所以更改返回JSON.stringify(address.munization.munizationplayeradress)代码>至返回地址.冥想.冥想游戏服装代码>
export default class Player extends React.Component<Props> {
meditationList = () => {
const adress = this.props.route.params;
return JSON.stringify(adress.meditation.meditationPlayerAdress);
};
audio = () => {
TrackPlayer.setupPlayer().then(async () => {
// Adds a track to the queue
await TrackPlayer.add({
id: 'trackId',
url: require(this.meditationList()),
title: 'Track Title',
artist: 'Track Artist',
});
let trackId = await TrackPlayer.getCurrentTrack();
// Starts playing it
TrackPlayer.play();
});
};
pause = () => {
TrackPlayer.pause();
};
stop = () => {
TrackPlayer.stop();
};
render() {
return (
....)}}}