关于08的处理,我有一点看法

来源:8-14 千万不要在observer中修改自身属性值

曼曼喜欢你

2020-03-06

在properties中,如果因为observer改变了index的值,导致不断的循环observer,且导致内存溢出。那么我可以用以下代码来规避这个问题,请老师帮忙看看:

properties: {
    index:{
      type:String,
      observer:function(newVal,oldVal,path){
        let val = newVal.length < 2 ? '0' + newVal : newVal
        this.setData({
          index: val
        })
      }
    }
  },

我将index的类型改为String,并且在observer中判断index的长度,如果长度小于2,就可以执行补0嘛。

老师在课程中提到,在data中通过新的属性_index去接收「observer处理过后的index」的值,我个人认为代码会更复杂。

但考虑到老师是出于课程知识点考虑,我是可以接受的。

写回答

1回答

7七月

2020-03-07

其实处理的方案很多,这里主要是为了提醒大家注意这个问题。你的方法也是ok的

0
1
曼曼喜欢你
谢谢老师!我继续往下学习
2020-03-07
共1条回复

纯正商业级微信小程序应用实战,全方位小程序特性讲解

真实数据的高质量小程序项目,学会直接工作

4782 学习 · 2125 问题

查看课程