这么写 报错Getter is missing for computed property "filteredItemsFlag"
时间: 2024-10-23 16:03:39 浏览: 25
Mybatis单个参数的if判断报异常There is no getter for property named 'xxx' in 'class java.lang.Integer'的解决方案
如果在 Vue.js 中使用 `this.$get` 等方法来访问一个未声明为 `getter` 的计算属性 `filteredItemsFlag` 时报错,这是因为 Vue 需要在模板中通过 `v-bind:...` 或 `{{...}}` 来创建一个响应式的数据绑定,才会自动将计算属性转化为 getter。如果没有显式地将其声明为 `data` 对象里的 getter,Vue 就无法识别它是计算属性。
解决这个问题的步骤如下:
1. **添加 getter**:首先在 data 选项中定义该计算属性,例如:
```javascript
data() {
return {
baseForm: { ... }, // 假设这是你的原始基础表单对象
filteredItemsFlag: null, // 初始化为 undefined 或 null
};
},
```
2. **计算属性表达式**:然后在计算属性内部编写你的逻辑,并返回值:
```javascript
computed: {
filteredItemsFlag() {
let hasNonEmptyItem = false;
for (let item of this.baseForm.inputKey) {
if (item.keyName !== '' && item.valueName !== '') {
hasNonEmptyItem = true;
break;
}
}
return hasNonEmptyItem;
}
},
```
现在,Vue 能够识别 `filteredItemsFlag` 作为计算属性,并在需要的时候提供相应的 getter。
阅读全文