From ddceb577a56e026537aae028e14e6c045ab2d401 Mon Sep 17 00:00:00 2001 From: neverland Date: Thu, 11 Jan 2018 14:34:20 +0800 Subject: [PATCH] [bugfix] Picker: change event not triggered when click option (#532) --- packages/picker/PickerColumn.vue | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/packages/picker/PickerColumn.vue b/packages/picker/PickerColumn.vue index 798dccb9c..5d42e683f 100644 --- a/packages/picker/PickerColumn.vue +++ b/packages/picker/PickerColumn.vue @@ -17,7 +17,7 @@ 'van-picker-column--disabled': isDisabled(option), 'van-picker-column--selected': index === currentIndex }" - @click="setIndex(index)" + @click="setIndex(index, true)" /> @@ -134,8 +134,7 @@ export default create({ 0, this.count - 1 ]); - this.setIndex(index); - this.$emit('change', index); + this.setIndex(index, true); } }, @@ -157,10 +156,14 @@ export default create({ return typeof option === 'object' && this.valueKey in option ? option[this.valueKey] : option; }, - setIndex(index) { + setIndex(index, userAction) { index = this.adjustIndex(index); this.offset = -index * this.itemHeight; - this.currentIndex = index; + + if (index !== this.currentIndex) { + this.currentIndex = index; + userAction && this.$emit('change', index); + } }, setValue(value) {