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

<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>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
iView Table ,当使用 Switch 组件时,我们可以通过监听 Switch 组件的 change 事件,将其选状态的加入到 Table 的 selection 。 以下是示例代码: ```html <template> <Table :data="tableData" :columns="columns" :row-selection="rowSelection"></Table> </template> <script> export default { data () { return { tableData: [ { name: 'John', age: 23, married: false }, { name: 'Mary', age: 25, married: true }, { name: 'Tom', age: 28, married: false } ], columns: [ { title: 'Name', key: 'name' }, { title: 'Age', key: 'age' }, { title: 'Married', key: 'married', render: (h, params) => { return h('Switch', { props: { value: params.row.married }, on: { change: (value) => { params.row.married = value; this.updateSelection(); } } }); } } ], rowSelection: { onChange: (selectedRows) => { this.selectedRows = selectedRows; }, selectedRowKeys: [] } }; }, methods: { updateSelection () { this.rowSelection.selectedRowKeys = this.tableData.filter(item => item.married).map(item => item.key); } } }; </script> ``` 在上面的示例代码,我们在 Table 的 columns 使用了 Switch 组件,并监听了其 change 事件。当 Switch 组件的选状态发生改变时,我们将其选状态的加入到 Table 的 selection 。具体来说,我们在 change 事件,更新了当前行数据的 married 属性,并调用了 updateSelection 方法,该方法会根据当前表格数据 married 为 true 的行,更新 rowSelection 的 selectedRowKeys 属性。最终,我们可以通过监听 Table 的 onChange 事件,获取到 selection 数据

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值