开发者问题收集

Vue 2:无法绕过“无法读取属性”

2017-01-15
977

我刚刚将我的应用升级到 Vue 2,但似乎无法解决此错误:

"Uncaught TypeError: Cannot read property 'length' of null at VueComponent.showChoices (eval at (app.js:310), :33:32)”

。我以为我可以通过条件来防止此错误,但此错误已经困扰了我 3 个小时。以下是 showChoices:

showChoices() {
    if(this.filtered) {
        if (this.search.length > 2 && this.filtered.length > 0) {
            return true;
        }
    }
    return false;
}
2个回答

null 值没有 length 属性。 正如您所评论的, this.search 为 null。您不是有意这样做的吗?:

showChoices() {
  if (this.search && this.filtered) {
    if (this.search.length > 2 && this.filtered.length > 0) {
        return true;
    }
  }
  return false;
}
sebnukem
2017-01-15

您还需要添加空检查,如下所示:

showChoices() {
    if (this.search && this.search.length > 2 && this.filtered && this.filtered.length > 0) {
      return true;
    }
    return false;
}
Saurabh
2017-01-15