TypeError: data.includes is not a function

错误原因:数据类型错误

后端传入的数据是 Page<实体类对象>,所以前端获取到data数据后需要data.records才可以获取到实体类对象集合

前端使用:

<el-form :model="searchFormState" ref="searchFormRef" name="advanced_search" class="ant-advanced-search-form">
	<el-row :gutter="24">
		<el-col :span="6">
			<el-form-item label="用户名" name="account">
				<el-input v-model="searchFormState.account" placeholder="请输入用户名"/>
			</el-form-item>
		</el-col>
		<el-col :span="6">
			<el-button type="primary" @click="loadData()">查询</el-button>
			<el-button style="margin: 0 8px" @click="reset()">重置</el-button>
		</el-col>
	</el-row>
</el-form>

<el-table
	ref="table"
	:data="tableData"
	style="width: 100%"
>
	<el-table-column type="index" label="序号" width="150" align="center"></el-table-column>
	<el-table-column prop="account" label="用户名" width="180" align="center"></el-table-column>
	<el-table-column prop="status" label="状态" width="220" align="center" key="canLogin">
		<template #default="scope">
			<div v-if="scope.row.status=== 'YES'">xxx</div>
			<div v-else-if="scope.row.status=== 'NO'">yyy</div>
		</template>
	</el-table-column>
	<el-table-column label="操作" align="center">
		<template #default="scope">
			<el-button type="primary" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
			<el-button type="danger" @click="handleDel(scope.$index, scope.row)">删除</el-button>
		</template>
	</el-table-column>
</el-table>

JS中:

<script>
import xApi from '@/api/x/x'
export default {
	name: 'Institution',
	computed: {
	},
	data() {
		return {
			searchFormState: {
				account: '',
				type: 'INSTITUTION'
			},
			tableData: []
		}
	},
	mounted() {
		this.loadData()
	},
	methods: {
		loadData() {
			xApi.page(this.searchFormState).then((data) => {
				console.log(data)
				this.tableData = data.records
			})
		},
        reset() {
			this.searchFormState.account = ""
		}
	}
}
</script>

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
## 回答1:<br/>这个错误提示意思是:数据类型错误,data 不是一个包含 includes 方法的函数。 可能是因为你在使用 data 变量时,将其赋值为了一个不支持 includes 方法的数据类型,比如数字、布尔值等。或者是在使用 includes 方法时,将其应用在了一个不支持该方法的数据类型上。 建议检查一下代码,确认 data 变量的数据类型是否正确,或者使用其他方法替代 includes 方法。## 回答1:<br/>这个错误提示意思是:数据类型错误,data 不是一个包含 includes 方法的函数。 可能是因为你在使用 data 变量时,将其赋值为了一个不支持 includes 方法的数据类型,比如数字、布尔值等。或者是在使用 includes 方法时,将其应用在了一个不支持该方法的数据类型上。 建议检查一下代码,确认 data 变量的数据类型是否正确,或者使用其他方法替代 includes 方法。<br> ## 回答2:<br/>TypeError: data.includes is not a functionJavaScript中一种常见的错误类型,通常出现在尝试使用字符串的includes方法时。这个错误的原因通常是因为数据不是一个字符串或者并不具备includes方法。 通常来说,这个错误经常出现在以下几种情况: 1.数据并不是字符串类型。在使用includes方法时,数据需要是字符串类型,如果不是字符串类型或者没有toString()方法就会出现这个错误。 2.数据为null或undefined。如果包含该数据的变量为null或undefined,就会导致数据不具有includes方法并且报错。 3.数据为数字类型。数字类型没有includes方法,调用时也会报错。 如何解决这个错误呢? 首先,我们需要检查数据类型是否正确,如果数据不是字符串类型,则需要先将其转换为字符串,最简单的方式就是使用toString()方法,比如 '12345'.toString()。 另外,如果数据为null或undefined,需要添加判断避免使用includes方法。 最后,如果数据为数字类型,需要在其前面添加字符串来转换类型,例如 "123".includes('2')。 总的来说,需要对数据的类型进行判断和转换,避免在不支持includes方法的数据类型上调用该方法。<br> ## 回答3:<br/>"TypeError: data.includes is not a function"是一个常见的错误,通常出现在JavaScript代码中。该错误提示意味着代码中尝试在一个不支持.includes() 方法的数据类型上调用.includes() 方法。通常来说,.includes() 方法可以在字符串和数组类型上使用,而对于其他数据类型,可能不支持.includes() 方法,因此就会导致发生该错误。 可能出现这种错误的原因有很多,以下是可能的原因: 1. 对于非字符串和数组类型的数据类型使用.includes() 方法,比如数字、布尔值、undefined等。 2. 创建了一个空的变量或对象,然后试图在其中查找某个值。 3. 在代码中使用了一个未定义的变量或参数,导致在运行时无法调用.includes() 方法。 4. 在旧版本的浏览器中使用.includes() 方法,因为该方法在ES6中才被引入,不被一些较老的浏览器支持。 解决该错误的步骤如下: 1. 确认发生错误的该行代码中调用.includes() 方法的数据类型,确保它是一个字符串或数组类型。 2. 检查该行代码的语法和拼写是否正确。 3. 使用console.log输出数据类型,以便确定参数是否合法且符合预期。 4. 尝试使用其他的字符串和数组方法来达到相同的效果,例如 indexOf() 方法来判断包含性。 5. 如果在旧版本的浏览器中使用.includes() 方法,则可以选择使用其他第三方库或兼容性方法将其进行更新。 总之,要避免发生"TypeError: data.includes is not a function"错误,开发者应该始终检查要调用方法的数据类型,并对代码进行适当的优化和测试,以确保代码的健壮性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值