Commit 2e84df449ae433e8176ecd76f024cd097ba864f6
1 parent
e6e97035
fixed Tree key bug under Vue 2.4.1
Showing
2 changed files
with
5 additions
and
2 deletions
Show diff stats
src/components/tree/node.vue
@@ -14,7 +14,7 @@ | @@ -14,7 +14,7 @@ | ||
14 | <span :class="titleClasses" v-html="data.title" @click="handleSelect"></span> | 14 | <span :class="titleClasses" v-html="data.title" @click="handleSelect"></span> |
15 | <Tree-node | 15 | <Tree-node |
16 | v-for="item in data.children" | 16 | v-for="item in data.children" |
17 | - :key="item" | 17 | + :key="item.nodeKey" |
18 | :data="item" | 18 | :data="item" |
19 | :visible="data.expand" | 19 | :visible="data.expand" |
20 | :multiple="multiple" | 20 | :multiple="multiple" |
src/components/tree/tree.vue
@@ -2,7 +2,7 @@ | @@ -2,7 +2,7 @@ | ||
2 | <div :class="prefixCls"> | 2 | <div :class="prefixCls"> |
3 | <Tree-node | 3 | <Tree-node |
4 | v-for="item in data" | 4 | v-for="item in data" |
5 | - :key="item" | 5 | + :key="item.nodeKey" |
6 | :data="item" | 6 | :data="item" |
7 | visible | 7 | visible |
8 | :multiple="multiple" | 8 | :multiple="multiple" |
@@ -19,6 +19,8 @@ | @@ -19,6 +19,8 @@ | ||
19 | 19 | ||
20 | const prefixCls = 'ivu-tree'; | 20 | const prefixCls = 'ivu-tree'; |
21 | 21 | ||
22 | + let key = 1; | ||
23 | + | ||
22 | export default { | 24 | export default { |
23 | name: 'Tree', | 25 | name: 'Tree', |
24 | mixins: [ Emitter, Locale ], | 26 | mixins: [ Emitter, Locale ], |
@@ -68,6 +70,7 @@ | @@ -68,6 +70,7 @@ | ||
68 | updateData (isInit = true) { | 70 | updateData (isInit = true) { |
69 | // init checked status | 71 | // init checked status |
70 | function reverseChecked(data) { | 72 | function reverseChecked(data) { |
73 | + if (!data.nodeKey) data.nodeKey = key++; | ||
71 | if (data.children) { | 74 | if (data.children) { |
72 | let checkedLength = 0; | 75 | let checkedLength = 0; |
73 | data.children.forEach(node => { | 76 | data.children.forEach(node => { |