VueJS 搜索过滤器错误:无法准备好未定义的“搜索”
2019-09-10
354
我正在构建一个应用程序来使用 json 并将其与搜索过滤器输入和其他内容一起列出。
我已经尝试创建该函数,但没有成功。
Codesandbox URL https://codesandbox.io/s/vue-template-7iev3?fontsize=14
search: "",
显示“TypeError:无法读取未定义的属性‘search’”但它已定义
2个回答
TypeError: 无法读取未定义的属性“search”并不意味着“search”未定义,而是父对象未定义。在您的例子中,“this.search”,这在您的回调中未定义。您应该使用“self.search”,因为您已经定义了它,或者只需将您的语法更改为:
computed: {
produtoFiltrado: function() {
return this.produtos.filter((cust) => {
return cust.nome.match(this.search);
});
}
}
箭头函数不会将其“this”绑定到其上下文,因此您可以使用它访问您的 vue 方法、props、数据等,没有任何问题
Davide Castellini
2019-09-10
为避免出现
“TypeError:无法读取 null 的属性‘includes’”
问题,最好在返回前添加一行
computed: {
filteredItems() {
return this.customers.filter(item => {
return (item.title || '').toLowerCase().indexOf((this.search || '').toLowerCase()) > -1
})
}}
(this.search || '')
即可解决问题..
drascom
2020-06-30