本文最后更新于 406 天前,其中的信息可能已经有所发展或是发生改变。
核心代码:
customRender: (t, r, index) => {
console.log(t, r, index, this);
return (index + (this.page - 1) * this.pageSize) + 1;
}
正确方案
data() {
return {
description: "某某某组件",
loading: true,
page: 1,
searchSelect: {},
columns: [
{
title: "序号",
dataIndex: "num",
width: "6%",
align: "center",
customRender: (t, r, index) => {
console.log(t, r, index, this);
return (index + (this.page - 1) * this.pageSize) + 1;
}
},
{
title: "任务标题",
dataIndex: "title",
width: "30%",
align: "center",
ellipsis: true
}
]
}
}
错误的几个点
- this.page 取值问题
customRender: function(t, r, index) {
return (index + (this.page - 1) * this.pageSize) + 1;
}
上面写法是不对的,this
的值为 undefined
,因为this
的上下文被错误地设置为全局上下文而不是你的组件实例的上下文。 为了解决这个问题可以使用箭头函数来定义customRender
函数,
customRender: (t, r, index) => {
return (index + (this.page - 1) * this.pageSize) + 1;
}
- 分页递增问题
customRender: (t, r, index) => {
return (index + 1);
}
上面的写法是不对的,每页都是1-10显示,后面的每页页都是1-10显示
customRender: (t, r, index) => {
return (index + 1) * this.page;
}
上面的写法是不对的,第一页1-10显示,第二页为2,4,6,8,10。。。