如标题所示,是在使用ant design vue的表格组件时引起的错误,报错信息如下
首先,这个表格是在一个v-for的a-tab组件内的a-table
看错误信息表示无限更新的循环
后来发现,渲染表格内容时,调用了一个计算方法返回要显示的内容,错误在于,在计算方法内,又改变了data数据的值,在更新渲染的时候又修改数据,又回导致更新,于是就死循环了
简略错误代码如下
<a-tabs v-model="queryMode">
<a-tab-pane v-for="item in tabList" :key="item.value" :tab="item.title">
<a-table
:columns="header"
:scroll="{ x: scrollX, y: TABLE_MAX_HEIGHT }"
:dataSource="body"
:loading="loadingObj"
:pagination="pagination"
>
<template v-for="title in headerSlots" :slot="'$' + title">
<span :key="title">
{{ getHeaderTarget(title).title }} // 此处调用计算方法
</span>
</template>
</a-table>
</a-tab-pane>
</a-tabs>
computed: {
getHeaderTarget () {
return dataIndex => {
const target = this.systemNameValid[dataIndex]
target['title'] = this.header.find(item => item.dataIndex === dataIndex).text // 此处又修改了target的值
return target
}
}
},
修改计算方法,不更新原值就可以了
computed: {
getHeaderTarget () {
return dataIndex => {
const target = this.systemNameValid[dataIndex]
return {remark: target.remark, title: this.header.find(item => item.dataIndex === dataIndex).text}
}
}
},