как обнаружить данные vue, переданные в состояние vuex, и проверить их - PullRequest
0 голосов
/ 04 апреля 2019

Я создаю плейлист и добавляю в него свои песни с помощью vuex, и это не проблема.но я не знаю, как это определить, если эти данные добавлены в состояние или нет?

это мой vuex:

export const state = () => ({
  playlist: []

});

export const mutations = {
  addToPlaylist(state, val) {
    state.playlist.push(val);
  }
};

export const getters = {
  playlistItems: state => state.playlist
};

, и я получаю элементы плейлиста, как это в созданномhook:

 this.playlist = this.$store.getters.playlistItems;
      this.$store.watch(
        (state) => {
          return this.$store.getters.playlistItems
        },
        (val) => {
          this.playlist = val;
        }
      )

этот код работает и проблем нет, но я не знаю, как его обнаружить.

мои данные таковы:

musics: [
          {
            id: 1,
            cover: require('~/assets/images/cover/music/ali_zand_vakili_jadeh_shab.jpg'),
            title: 'جاده شب',
            artist: 'علی زند وکیلی',
            source: 'http://media.mtvpersian.net/2019/Mar/21/Ali%20Zand%20Vakili%20-%20Jadeh%20Shab.mp3'
          },
          {
            id: 2,
            cover: require('~/assets/images/cover/music/amin_hayaei_divoone_misazi.jpg'),
            title: 'دیوونه میسازی',
            artist: 'امین حیایی',
            source: 'https://cdnmrtehran.ir/media/mp3s_128/Amin_Hayaei/Singles/amin_hayaei_divoone_misazi.mp3'
          },
        ],

Я хочу изменить значок, если эти данные добавлены или не для всех элементов, каждый элемент имеет значок

спасибо

1 Ответ

0 голосов
/ 04 апреля 2019

Просто вы можете сделать функцию, чтобы проверить, если выбранная музыка с идентификатором уже в списке.

isAlreadyAdded(id, arr) {
  let is_in = false;
  for (let i = 0; i < arr.length; i++) {
    if (arr[i].id === id) {
       is_in = true;
       break;
    }
  }
  return is_in;
}
...