使用includes进行判断时,控制台报错Cannot read properties of undefined (reading 'includes')
时间: 2023-08-15 08:13:46 浏览: 2634
js代码-js数组判断是否存在元素 includes() 方法
如果使用`includes`方法时出现报错`Cannot read properties of undefined (reading 'includes')`,那么很可能是因为`backendData`属性未正确初始化或者未正确赋值。
请确保在Vue组件的`data`中正确初始化`backendData`属性,并且在获取后端数据后将其赋值给`backendData`。
以下是一个示例,展示如何正确初始化和赋值`backendData`属性:
```vue
<template>
<div>
<input type="text" v-model="input1" @blur="checkInput(input1)">
<input type="text" v-model="input2" @blur="checkInput(input2)">
<input type="text" v-model="input3" @blur="checkInput(input3)">
</div>
</template>
<script>
export default {
data() {
return {
input1: '',
input2: '',
input3: '',
backendData: [], // 正确初始化为一个空数组
};
},
mounted() {
// 获取后端数据并赋值给backendData
// 示例中使用setTimeout模拟异步请求的过程
setTimeout(() => {
const response = ['value1', 'value2', 'value3']; // 假设这是从后端接口返回的数据
this.backendData = response;
}, 1000);
},
methods: {
checkInput(value) {
if (this.backendData.includes(value)) {
// 输入的值存在于后端传来的值里
const message = this.backendData.find(item => item.value === value)?.message;
if (message) {
alert(message); // 弹出成功信息
}
} else {
// 输入的值不存在于后端传来的值里
// 弹出其他信息或执行其他逻辑
}
},
},
};
</script>
```
在这个示例中,我们通过`mounted`钩子模拟异步请求后端数据的过程,并在获取到数据后将其赋值给`backendData`。这样可以确保在组件渲染时,`backendData`已经被正确初始化并且不再是`undefined`。
阅读全文