
正文
学习旧岛小程序 (5) observer 函数中修改属性的值
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
不要在一个属性的 observer 函数中修改属性的值 不然会造成内存泄露
错误代码:
properties: {
/* 期刊号 */
index: {
type: String,
observer: function (newVal, oldVal, changedPath) {
// 属性被改变时执行的函数(可选),也可以写成在methods段中定义的方法名字符串, 如:'_propertyChange'
// 通常 newVal 就是新设置的数据, oldVal 是旧数据
/*当index数据类型为number时,这样处理不行,因为小程序会自动转化。而string类型又因为会无限递归,而报错所以我们在data中定义一个新的_index
数据给他赋值,注意使用_index时,你组件的{{}}中调用的也必须时{{_index}}而不是{{index}}*/
let val = newVal < ? '' + newVal : newVal
this.setData({
index: val
})
console.log(newVal)
console.log(oldVal)
}
}
},
效果:








