You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

过滤含vue-mc模型的数组时属性访问报错,求解决方案

解决vue-mc模型数组中无法直接访问属性的问题

我太懂你碰到的这个坑了!vue-mc 的模型实例可不是普通的 JavaScript 对象,它的属性并没有直接暴露在实例本身上,所以你直接用 item.name 去访问自然会得到 undefined,进而触发 Cannot read property 'toLowerCase' 的错误。

正确的属性访问方式

vue-mc 提供了专门的方法来获取模型属性——get() 方法,你可以通过它安全地获取模型中的属性值。修改你的计算属性代码如下:

computed: { 
  filtered_items:function() { 
    const self = this; 
    return this.local_items.filter(function(item) { 
      // 用get方法获取name属性,同时做空值处理避免报错
      const itemName = item.get('name') || '';
      return itemName.toLowerCase().indexOf(self.user_input.toLowerCase()) >= 0; 
    }); 
  } 
}

额外提示

如果你的 vue-mc 版本支持,也可以通过模型实例的 $data 属性直接访问底层数据对象,比如 item.$data.name,不过官方更推荐使用 get() 方法,因为它会处理属性默认值、类型转换等逻辑,更符合 vue-mc 的设计规范。

另外,加上 || '' 的空值处理是为了防止 name 属性本身为 null 或 undefined 的情况,避免再次触发类似的报错。

内容的提问来源于stack exchange,提问作者Tarvo Mäesepp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:34:24