Javascript 在另一个函数内传递函数

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

我得到了下面的组件,它呈现一个音频播放器。冥想列表函数为我提供了要动态播放的文件的位置,音频函数是播放器的功能

我想做的是传递冥想列表返回的曲目播放器url

多谢各位


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 (
         ....)}}}