Commit 76ae3e8853e64dc64d138f665b389a1ba4962035

Authored by 梁灏
1 parent 5465ae45

fix #5380

src/components/table/table-body.vue
... ... @@ -8,7 +8,7 @@
8 8 <table-tr
9 9 :draggable="draggable"
10 10 :row="row"
11   - :key="row._rowKey"
  11 + :key="rowKey ? row._rowKey : index"
12 12 :prefix-cls="prefixCls"
13 13 @mouseenter.native.stop="handleMouseIn(row._index)"
14 14 @mouseleave.native.stop="handleMouseOut(row._index)"
... ... @@ -31,7 +31,7 @@
31 31 </table-tr>
32 32 <tr v-if="rowExpanded(row._index)" :class="{[prefixCls + '-expanded-hidden']: fixed}">
33 33 <td :colspan="columns.length" :class="prefixCls + '-expanded-cell'">
34   - <Expand :key="row._rowKey" :row="row" :render="expandRender" :index="row._index"></Expand>
  34 + <Expand :key="rowKey ? row._rowKey : index" :row="row" :render="expandRender" :index="row._index"></Expand>
35 35 </td>
36 36 </tr>
37 37 </template>
... ... @@ -63,6 +63,10 @@
63 63 draggable: {
64 64 type: Boolean,
65 65 default: false
  66 + },
  67 + rowKey: {
  68 + type: Boolean,
  69 + default: false
66 70 }
67 71 },
68 72 computed: {
... ...
src/components/table/table.vue
... ... @@ -21,6 +21,7 @@
21 21 :styleObject="tableStyle"
22 22 :columns="cloneColumns"
23 23 :data="rebuildData"
  24 + :row-key="rowKey"
24 25 :columns-width="columnsWidth"
25 26 :obj-data="objData"></table-body>
26 27 </div>
... ... @@ -59,6 +60,7 @@
59 60 :styleObject="fixedTableStyle"
60 61 :columns="leftFixedColumns"
61 62 :data="rebuildData"
  63 + :row-key="rowKey"
62 64 :columns-width="columnsWidth"
63 65 :obj-data="objData"></table-body>
64 66 </div>
... ... @@ -84,6 +86,7 @@
84 86 :styleObject="fixedRightTableStyle"
85 87 :columns="rightFixedColumns"
86 88 :data="rebuildData"
  89 + :row-key="rowKey"
87 90 :columns-width="columnsWidth"
88 91 :obj-data="objData"></table-body>
89 92 </div>
... ... @@ -200,6 +203,11 @@
200 203 return oneOf(value, ['dark', 'light']);
201 204 },
202 205 default: 'dark'
  206 + },
  207 + // #5380 开启后,:key 强制更新,否则使用 index
  208 + rowKey: {
  209 + type: Boolean,
  210 + default: false
203 211 }
204 212 },
205 213 data () {
... ...