我正在vuejs
中构建一个小应用程序,我有一个这样的过滤器:
tableFilter: function () {
const searchTerm = this.search.toLowerCase();
const searchByType = this.search_by_tag.toLowerCase();
if(this.contactStore.contactList)
{
return this.contactStore.contactList.data.filter((item) =>
(item.first_name.toLowerCase().includes(searchTerm)
|| (item.last_name !==null && item.last_name.toLowerCase().includes(searchTerm))
|| (item.company.name !==null && item.company.name.toLowerCase().includes(searchTerm))
|| item.email.toLowerCase().includes(searchTerm)
|| (item.address !== null && item.address.toLowerCase().includes(searchTerm))
|| (item.city !== null && item.city.toLowerCase().includes(searchTerm))
|| (item.mobile !==null && item.mobile.toLowerCase().includes(searchTerm)))
&& ((item.profile !==null && item.profile.toLowerCase().includes(searchByType))
|| (item.company.type !== null && item.company.type.toLowerCase().includes(searchByType))
|| (item.company.sub_type !== null && item.company.sub_type.toLowerCase().includes(searchByType))));
}
},
在这里,我有一个名为item.company
的属性,它可以为null,因此在实现时
(item.company.type !== null && item.company.type.toLowerCase().includes(searchByType))
抛出错误:
渲染函数出错:“TypeError:无法读取属性'type'的null”
我正在寻找一个解决方案,我可以让if-else找出该项目是否有公司,如果属性可用,那么它可以分别进行过滤。
由于
答案 0 :(得分:2)
如果您只想修复错误:
set_include_path(get_include_path() . PATH_SEPARATOR . '/<your custompath>');
但是如果你想不按公司过滤,如果它是null:
|| (item.company && item.company.type !== null && item.company.type.toLowerCase().includes(searchByType))