Я пытаюсь отфильтровать коллекцию фильмов, которые я извлекаю, используя axios. Это так, я могу сравнить его со строкой поиска для функции поиска. Все работает нормально, за исключением того, что при использовании свойства computed оно возвращает Cannot read свойство 'filter' of undefined ", но когда я проверяю инструмент vue dev, оно говорит, что свойство computed содержит массив фильмов, которые на самом деле не складываются. Код следующим образом.
created(){
this.fetchFilms();
},
methods:{
fetchFilms(page_url){
let vm = this;
// storing the page url
page_url = page_url || '/api/films'
axios.get(page_url)
.then(response => response)
.then(response => {
this.films = response.data;
vm.makePagination(response.meta, response.links);
})
.catch(err => console.log(err));
},
makePagination(meta,links){
let pagination = {
current_page: this.films.meta.current_page,
last_page: this.films.meta.last_page,
next_page_url: this.films.links.next,
prev_page_url: this.films.links.prev
}
this.pagination = pagination;
}
},
computed: {
filteredFilms () {
return this.films.data.filter((film) => {
return film.film_name.toLowerCase().match(this.searchString.toLowerCase())
})
},
}
Вот как данные возвращаются
films:Object
data:Array[10]
links:Object
meta:Object
Любая помощь приветствуется.