Vuejs SearchBar ||使用过滤器方法不起作用

问题描述

我对 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 也请忽略错误

解决方法

我在您的代码中的任何地方都没有看到 this.info 的声明/初始化。

您收到该错误的原因是过滤器试图在未定义的变量上运行(this.infoundefined)。

您可能希望将其初始化为 data 内的空数组。