Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么我不能将变量传递给另一个函数中的函数?JS-REACT-NATIVE_Javascript_React Native - Fatal编程技术网

Javascript 为什么我不能将变量传递给另一个函数中的函数?JS-REACT-NATIVE

Javascript 为什么我不能将变量传递给另一个函数中的函数?JS-REACT-NATIVE,javascript,react-native,Javascript,React Native,对于noob的问题,我很抱歉,但我真的不明白为什么我会出现这个错误,我正在构建一个音乐播放器,我在componentDidMount中运行的第一个函数是requestPermissions,下面是代码: try { let tracks = []; let tracks_object = []; tracks = await MusicFiles.getAll({

对于noob的问题,我很抱歉,但我真的不明白为什么我会出现这个错误,我正在构建一个音乐播放器,我在componentDidMount中运行的第一个函数是requestPermissions,下面是代码:

try {
                let tracks = [];
                let tracks_object = []; 
                tracks = await MusicFiles.getAll({
                    cover: true,
                });
                for (i = 0 ; i < tracks.results.length ; i++) {
                    tracks_object.push(new Tracks_info(tracks.results[i]));
                }
                this.setState({tracks: tracks_object}, () => this.init_player());
            }catch(error) {
                alert(error);
            }
 init_player = async () => {
    try {
        if (this.state.random) {
            let random_tracks = this.random_queue(this.state.tracks);
            console.log(random_tracks);
        }else {
            await TrackPlayer.setupPlayer();
            await TrackPlayer.add(tracks);
            TrackPlayer.play();
        }
    }catch(error) {
        alert(error);
    }
}
 random_queue = (tracks) => {
    let cambio = tracks.slice().sort(() => {return Math.random() - 0.5});
    return cambio;
}
在我运行播放器之前,我确保随机音乐是否被激活,如果是,我将曲目传递到函数random queue,创建一个随机列表并返回,代码如下:

try {
                let tracks = [];
                let tracks_object = []; 
                tracks = await MusicFiles.getAll({
                    cover: true,
                });
                for (i = 0 ; i < tracks.results.length ; i++) {
                    tracks_object.push(new Tracks_info(tracks.results[i]));
                }
                this.setState({tracks: tracks_object}, () => this.init_player());
            }catch(error) {
                alert(error);
            }
 init_player = async () => {
    try {
        if (this.state.random) {
            let random_tracks = this.random_queue(this.state.tracks);
            console.log(random_tracks);
        }else {
            await TrackPlayer.setupPlayer();
            await TrackPlayer.add(tracks);
            TrackPlayer.play();
        }
    }catch(error) {
        alert(error);
    }
}
 random_queue = (tracks) => {
    let cambio = tracks.slice().sort(() => {return Math.random() - 0.5});
    return cambio;
}
它“起作用”,因为即使抛出错误,它也会返回数组,但不知道原因,错误如下: