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 => { |