Данные не отправляются после фильтрации в React Native - PullRequest
0 голосов
/ 23 января 2020

Я успешно создал базу данных треков, используя этот код:

export async function loadData() {
    let data = [];

    MusicFiles.getAll({
      id: true,
      artist: true,
      duration: true,
      genre: true,
      title: true,
      fileName: true,
      minimumSongDuration: 1000 
    }).then(async (tracksNOFILTER) => {
        let results = await Promise.all(tracksNOFILTER)
        let filterTracks = results
        .filter((item) => item.path == '/storage/emulated/0/Test/Wake.mp3')
        .map(({album, author, duration, fileName, genre, id, path, title}) => ({album, author, duration, fileName, genre, id, path, title}));


        for (let i = 0; i < tracksNOFILTER.length; i++) {

            let track = tracksNOFILTER[i];
            console.log(track);            

            data.push({
                id: track.id,
                url: 'file://' + track.path,
                artwork: track.cover,
                duration: track.duration,

                title: checkTitle(track.title, track.fileName),
                artist: track.artist,
                album: track.album,
                genre: track.genre
            });
        }     
    }).catch(error => {
        //
    });
    return data;
}

Когда я использую его без фильтрации, как в приведенном выше коде - все работает отлично. Isuue происходит, когда я хочу отфильтровать массив, возвращенный tracksNOFILTER, используя:

for (let i = 0; i < filterTracks.length; i++) {

    let track = filterTracks[i];

Результат, отображаемый console.log(track); (а также для track.path et c.) В обоих случаях одинаков для значений, которые мне нужны.

data.push() просто не работает при использовании отфильтрованных данных.

...