TypeError:无法读取VueComponent.filterKategori上未定义的属性'filter'(app.js:16260)

时间:2019-07-15 09:00:00

标签: javascript laravel vue.js

这是我的代码

select count(*)
from view1
where field1 like N'%searchKeyword%' or field1 like N'%searchKeyword%' or field1 like N'%searchKeyword%' or field1 like N'%searchKeyword%' or ...
union all
select count(*)
from view2
where field11 like N'%searchKeyword%' or field12 like N'%searchKeyword%' or field13 like N'%searchKeyword%' or field14 like N'%searchKeyword%' or ...
union all
select count(*)
from view3
where field21 like N'%searchKeyword%' or field22 like N'%searchKeyword%' or field23 like N'%searchKeyword%' or field24 like N'%searchKeyword%' or ...
union all
.
.
.

这是我的结构数据

computed: {
    filterKategori() {
      var kategori = this.kategori.data.filter(f => {
        return f.induk == null && f.id_klasifikasi == this.id_klasifikasi;
      });

      return kategori;
    }
  },

请问有谁能帮我,为什么过滤器不起作用,错误提示这无法读取未定义的属性过滤器

1 个答案:

答案 0 :(得分:0)

似乎在一个请求中,您获得的是“ null”而不是“ this.kategori.data”,并且过滤器被称为属性(ECMAScript中的遗留原因更多https://2ality.com/2013/10/typeof-null.html)有关“ null”的更多信息: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/null

您需要在“数据”属性上添加其他检查:

computed: {
    filterKategori() {
      if(!this.kategori.data) return kategori;

      var kategori = this.kategori.data.filter(f => {
        return f.induk == null && f.id_klasifikasi == this.id_klasifikasi;
      });

      return kategori;
    }
  },