Я делаю приложение Vuejs, в котором я показываю добычу из рейда в игре.
Проблема, с которой я столкнулся, заключается в том, что, поскольку они не находятся в одной коллекции, мне нужно сделать больше, чем однувыбирайте каждый "Рейд", чтобы получить каждый предмет из базы огня / магазина огня. Поэтому мой Vuex жалуется, что я делаю больше выборок, чем ему нравится, вот ошибка:
[Vue warn]: Error in callback for watcher "function () { return this._data.$$state }": "Error: [vuex] do not mutate vuex store state outside mutation handlers."
и
[vuex] do not mutate vuex store state outside mutation handlers.
это мое действие Vuex:
GetFirstTenRaids({ commit }) {
var CoX = firebase.firestore().collection(CollOne).doc(MyUid).collection('ChambersOfXeric')
let newRaidsData = []
CoX.orderBy('KC', 'desc').limit(10).get()
.then(function (CoXQuery) {
let firstDoc = CoXQuery.docs[0].id
let lastDoc = CoXQuery.docs[CoXQuery.docs.length - 1].id
CoXQuery.forEach(function (raid) {
let lootData = []
let KC = String(raid.data().KC)
CoX.doc(KC).collection('Loot').get()
.then(function (thisRaidLootID) {
thisRaidLootID.docs.forEach(function (thisLoot) {
if (!raid.data().Unique) {
lootData.push({
"Item": thisLoot.data().Item,
"Amount": thisLoot.data().Amount
})
} else {
lootData.push({
"Item": thisLoot.data().Item,
"Pet": thisLoot.data().Pet
})
}
})
})
newRaidsData.push({
"killcount": raid.data().KC,
"points": raid.data().Points,
"Clue": raid.data().Clue,
"unique": raid.data().Unique,
"items": lootData
})
})
commit('addThislootToStore', newRaidsData)
})
}
как структурированы данные: DataStructure
Я сделал это таким образом, чтобы было проще отслеживать все лоты, которые я получил от конкретного предмета, используя индексыв огненной базе.
Мне нужна помощь в разбивке по страницам, она работает прямо сейчас (без нумерации страниц), но она получает ошибку при каждой добыче, которую я получаю. Как функция будет искать следующую «страницу», где я начинаю после последней в этом списке.