4***@qq.com
4***@qq.com
  • 发布:2023-09-15 10:34
  • 更新:2023-09-15 14:08
  • 阅读:115

【报Bug】uni-table多选框BUG

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: 10

HBuilderX类型: 正式

HBuilderX版本号: 3.8.12

手机系统: Android

手机系统版本号: Android 11

手机厂商: 小米

手机机型: PAD

页面类型: vue

vue版本: vue2

打包方式: 离线

项目创建方式: HBuilderX

操作步骤:
<uni-table type = "selection" @selection-change="handleChangle"></uni-table>  

methods:{  
    handleChangle(val){  
        console.log(val.detail.index)  
    }  
}

在此基础上,增加一个删除或者新增操作访问后台,新增数据后重新执行查询操作,再次点击复选框

预期结果:

我现在选中了第一个行的数据的多选框,这个时候val.detail.index的值是[0],即索引0;
当我删除了第一行的数据后,再选中第二个行的数据的多选框,这个时候val.detail.index的值应该是[1]

实际结果:

当我删除了第一行的数据后,再选中第二个行的数据的多选框,这个时候val.detail.index的值是[0,1]

bug描述:

uni-table里面开启多选框后,selection-change获取的是选中的index行数。
举个例子:

<uni-table type = "selection" @selection-change="handleChangle"></uni-table>  

methods:{  
    handleChangle(val){  
        console.log(val.detail.index)  
    }  
}

这里获取的index不知道怎么的存放着的,如果我删除或者新增数据后,这个index在下一次选中多选框的时候会传进来,举个例子:
我现在选中了第一个行的数据的多选框,这个时候val.detail.index的值是[0],即索引0;
当我删除了第一行的数据后,再选中第二个行的数据的多选框,这个时候val.detail.index的值是[0,1],也就是说它不仅传递给我了新选中的index,还给我把之前选中的传给我了,请问这是怎么回事呢?该怎么解决呢?

2023-09-15 10:34 负责人:无 分享
已邀请:
喜欢技术的前端

喜欢技术的前端 - QQ---445849201

删除之后,可以使用 this.$refs.table.clearSelection()清除掉之前的选择

  • 4***@qq.com (作者)

    嗯可以解决删除的问题,但是插入的时候有另一个问题。假如一页有十行数据,插入数据后,第一行数据的索引会变为【9】,第二行数据会变为【1】,都减一了,请问这是怎么回事呢

    2023-09-15 15:14

  • 喜欢技术的前端

    回复 4***@qq.com: 倒是没出现,索引变9的情况

    let data = {

    date: "date",

    name: "name",

    address: "address"

    }

    this.tableData.push(data)

    this.tableData.unshift(data)//

    2023-09-15 15:59

要回复问题请先登录注册