#javascript #vue.js #vuejs2 #vue-component #vue-filter
#javascript #vue.js #vuejs2 #vue-компонент #vue-фильтр
Вопрос:
Я новичок в Vue js, я пытаюсь использовать вычисляемый метод для создания панели поиска только для поиска по имени, но я получаю «this.info.filter» — это не функция
<template>
<div class="container">
<input type="text" v-model="search" placeholder="Search by name">
<div class="content" v-for="student in filterName " v-bind:key="student.id">
<img class="image" :src="student.pic" alt="">
<div class="student-info">
<h1 class="info">{{student.firstName " " student.lastName}}</h1>
<div class="infomation">
<p class="cop">{{ student.company }}</p>
<p class="ski">{{ student.skill }}</p>
<p class="email">{{ student.email }}</p>
<p class="grade">{{ student.grades }}</p>
</div>
</div>
</div>
</div>
</template>
<script>
import axios from "axios";
export default {
name: "Student.vue",
data() {
return {
students: '',
search: ''
}
},
mounted() {
axios
.get('https://api.hatchways.io/assessment/students')
.then((res) => {
this.students = (res.data.students)
})
},
computed :{
filterName:function (){
return this.info.filter((student)=>{
return student.company.matcth(this.search);
})
}
}
}
</script>
</style>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
При первом использовании StackOverflow также, пожалуйста, игнорируйте ошибки
Комментарии:
1. это
match
не должно бытьmatcth
2. Внутри функции
filterName
ключевоеthis
слово ссылается на ту самую функцию, у которой нет свойстваinfo
…
Ответ №1:
Я не вижу объявления / инициализации this.info
нигде в вашем коде.
Причина, по которой вы получаете эту ошибку, заключается в том, что filter пытается запустить неопределенную переменную ( this.info
is undefined
).
Возможно, вы захотите инициализировать это в пустой массив внутри data
.