最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue過濾表格數(shù)據(jù)導(dǎo)致的索引錯(cuò)亂問題及解決

 更新時(shí)間:2026年05月24日 10:49:24   作者:莫物  
這段描述主要討論了在表單操作中如何正確處理表格數(shù)據(jù)的篩選和編輯,強(qiáng)調(diào)保持?jǐn)?shù)據(jù)源完整性和操作準(zhǔn)確性的關(guān)鍵,關(guān)鍵詞包括:數(shù)據(jù)源完整性和操作準(zhǔn)確性

問題描述

在一個(gè)表單中有一個(gè)表格需要操作篩選和編輯

我用tableData.filter(filterEditTable)過濾了表格數(shù)據(jù),在過濾后的表格數(shù)據(jù)中進(jìn)行編輯或刪除操作時(shí),直接使用過濾后數(shù)組的索引(filterEditTable 的索引)會(huì)導(dǎo)致操作錯(cuò)誤,因?yàn)檫@個(gè)索引并不對(duì)應(yīng)原始數(shù)據(jù)源(tableData)的位置

解決方案

保持?jǐn)?shù)據(jù)源(tableData)的完整性,只通過控制表格的顯示屬性來過濾,處理“編輯/刪除”和“篩選”共存場(chǎng)景。

實(shí)現(xiàn)

<el-table 
    :data="tableData" 
    :row-class-name="tableRowClassName">
    <!-- 列定義... -->
</el-table>
methods: {
    // 動(dòng)態(tài)添加類名
    tableRowClassName({row}) {
        // 如果不滿足篩選條件,添加 'hidden-row' 類
        if (!row.name.includes(this.searchKeyword)) {
            return 'hidden-row';
        }
        return '';
    },
    handleDelete(index) {
        // 這里的 index 直接對(duì)應(yīng) form.detailsList 的索引,非常安全!
        this.tableData.splice(index, 1);
    }
}
/* 隱藏行的 CSS */
/* 必須加 ::v-deep (或者 /deep/ 或 >>>) */
::v-deep .el-table .hidden-row {
    display: none !important; /* 加上 !important 強(qiáng)制覆蓋 */
}

這樣做的好處

  • 索引準(zhǔn)確:scope.$index 永遠(yuǎn)指向 tableData的真實(shí)位置,刪除和編輯不會(huì)錯(cuò)位。
  • 數(shù)據(jù)不丟失:篩選只是“視覺上的隱藏”,數(shù)據(jù)依然存在于內(nèi)存中,用戶切換篩選條件后數(shù)據(jù)還在。
  • 新增行處理簡(jiǎn)單:新增的行直接 push 進(jìn) tableData,表格會(huì)自動(dòng)渲染,如果它符合篩選條件就會(huì)自動(dòng)顯示,不符合就自動(dòng)隱藏,無需額外邏輯。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

大田县| 新干县| 兖州市| 辽宁省| 平凉市| 泉州市| 嘉荫县| 霞浦县| 栾川县| 津市市| 孟津县| 登封市| 潜江市| 濮阳市| 紫金县| 汝城县| 香河县| 万宁市| 桃江县| 昌吉市| 平邑县| 宿迁市| 宾阳县| 澄江县| 绥化市| 新密市| 昭通市| 台北县| 孙吴县| 广水市| 文昌市| 敦煌市| 油尖旺区| 固始县| 通州市| 禹城市| 楚雄市| 靖安县| 云南省| 麻阳| 英吉沙县|