数组对象排序后的值放在watch监听中时,用得到新的value赋值,报错无线循环

首先记一下数组对象排序:

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
    }

  },

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值