方法一:使用render函数
这种方式有个缺点就是可读性差,而且render函数绑定的事件回调的函数不能直接调用组件中的方法和属性,也就是说render函数中的方法无法操作exportdefault中的属性和方法,除非属性是表格中的属性,因为表格的属性通过参数的形式传给了render。
data() {
return {
sharepop: false,
columnsoftable: [
{
type: '操作',
width: 60,
align: 'center',
render:(h, params)=>{
return h('a', {
on: {
click: () => {
//提示undefined,访问不到组件内部,
//render函数返回的是原生的dom只能访问组件外部的方法和属性
alert(this.sharepop);
this.sharepop = true;//无效
}
}
}, '协作')
}
},
解决render函数访问不了组件内部属性和方法:https://blog.csdn.net/weixin_34309435/article/details/88208233
方式二:iview官方的api提供有slot-scope的写法,但是不仔细看每一种表格不容易注意到,这也导致了我走了很多弯路。
这种方式可以直接在表格中写iview或html的标签而不需要通过render函数,这样也可以访问组件内部的属性和方法,可读性也比较好。