[iview]Table中data改变switch值无法刷新问题

本文介绍如何在Vue.js中使用i-switch组件实现表格中行的状态切换,通过监听开关变化并更新数据源,实现行显示与隐藏的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<template>
	<Table
		:data="data"
		:columns="columns"
		stripe
	>
		<template slot-scope="{ row }" slot="status">
			<i-switch :value="row.show===1" @on-change="onStatusChange(row,$event)">
				<span slot="open">开</span>
				<span slot="close">关</span>
			</i-switch>
		</template>
	</Table>
</template>

<script>
export default {
	data() {
		return {
			data: [
				{
					id: 1,
					show: 1
				},
				{
					id: 2,
					show: 1
				},
				{
					id: 3,
					show: 1
				},
				{
					id: 4,
					show: 1
				},
				{
					id: 5,
					show: 0
				}
			],
			columns: [
				{
					title: 'ID',
					key: 'id'
				},
				{
					title: '状态',
					slot: 'status'
				}
			]
		}
	},
	methods: {
		onStatusChange(row, event) {
			// Vue.js 不能检测到对象属性的添加或删除
			// $set()方法重新渲染
			this.$set(row, 'show', Number(event))
			this.$nextTick(() => {
				this.data.splice(row.id - 1, 1)
			})
		}

	}
}
</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值