首先记一下数组对象排序:
var person = [{name:"Rom",age:12},{name:"Bob",age:22},{name:"Ma",age:5},{name:"Tony",age:25}]
person.sort((a,b)=>{ return a.age-b.age})//升序
person.sort((a,b)=>{ return b.age-a.age})//降序
原来排序直接放在watch里面了this.value.sort((a,b)=>{return a.sort-b.sort}),会报错
watch: {
value: {
// value 需要深度监听及默认先执行handler函数
handler(val) {
this.dynamicValidateForm.domains = this.value.sort((a,b)=>{return a.sort-b.sort}) || [];
},
immediate: true,
deep: true
}
},
后来查出来问题,不能放在watch里面,可以放在computed里面,来获得一个新的数组value
valSort(){
// console.log(this.value)
if(this.value){
return this.value.sort((a,b)=>{return a.sort-b.sort})}
},
然后watch里面赋值新的排序好的数组
watch: {
value: {
// value 需要深度监听及默认先执行handler函数
handler(val) {
// console.log(this.value)
this.dynamicValidateForm.domains = this.valSort || [];
},
immediate: true,
deep: true
}
},