diff --git a/src/core/view/components/picker-view/index.vue b/src/core/view/components/picker-view/index.vue index 1913702560c4328ec2cf8668125c34a8ac5b7c5b..04f2c3cc6b9ed91cd6e60768c2522caf90aebfc8 100644 --- a/src/core/view/components/picker-view/index.vue +++ b/src/core/view/components/picker-view/index.vue @@ -37,13 +37,15 @@ export default { } }, watch: { - value (val) { - this.valueSync.length = val.length - val.forEach((val, index) => { - if (val !== this.valueSync[index]) { - this.$set(this.valueSync, index, val) - } - }) + value (val, oldVal) { + if (val === oldVal || val.length !== oldVal.length || val.find((item, index) => item !== oldVal[index])) { + this.valueSync.length = val.length + val.forEach((val, index) => { + if (val !== this.valueSync[index]) { + this.$set(this.valueSync, index, val) + } + }) + } }, valueSync: { deep: true,