Я пытаюсь сделать что-то довольно простое. Я передаю идентификатор в качестве подпорки из родительского компонента, а затем пытаюсь отфильтровать массив «themes» в дочерней подпорке, возвращая только тему с тем же идентификатором.
Однако фильтрация этого массива неработать на всех. Даже использование this.topics.filter(x => x);
возвращает пустой массив.
this.topics.forEach(x => console.log('working!')
также ничего не регистрирует.
this.topics.push("Some new Element")
полностью сбрасывает массив и возвращает только массив, включающий "Some new Element"
.
console.log(this.topics)
возвращает полный массив, за исключением случаев, когда ранее использовался метод push - тогда он возвращает только «новый» массив, содержащий элемент push.
Он не выдает ошибок в консоли. Массив не пустой, Firestore заполняет его без проблем (см. Скриншот ниже).
Я попытался создать еще один массив в функции data (), содержащий только строки, чтобы проверить, является ли он каким-либоошибки в файле, но фильтрация «обычных» массивов работает просто отлично.
this.topics
содержит только объекты, может, в этом причина?
Заполнение массива тем в созданном хукеполучение данных из firebase (работает без проблем, см. скриншот ниже)
db.collection("courses").doc(this.$route.params.course_id).collection("sections")
.get()
.then(snapshot => {
snapshot.forEach(sec => {
if (this.topics.length == 0) {
db.collection("courses").doc(this.$route.params.course_id).collection("sections").doc(sec.id).collection("topics").orderBy("order")
.get()
.then(snapshot => {
snapshot.forEach(doc => {
// Magic starts here.
this.topics.push({
data: doc.data(), // <= that´s an object
topic_id: doc.id,
sectionOfTopic_id: sec.id
// And ends here
})
})
})
} else {
return;
}
})
})
Функция My data ()
data() {
return {
courseTitle: null,
sections: [],
topics: [],
selected: undefined
}
}
Я отчаянно пытаюсь отфильтровать их в подключенном хуке(также пробовал в методах и создал ловушку)
mounted() {
console.log(this.topics)
let preview = this.topics.filter(x => x)
console.log(this.topics)
console.log(preview)
}
Используя this.topics.filter(x => x)
Я ожидал бы получить копию массива 1: 1, однако он возвращает пустой массив []
.