小程序正常页面引入,正常使用,
但是组件中,watchNum()方法中死活获取不到data,以及父页面传递过来的值,this打印是undefined
如果watchNum()方法不放到methods,中又无法执行
// 1.app.js定义全局变量
globalPassLength: {
cursorShow:false
},
//app 全局属性监听
watch: function (method) {
var obj = this.globalPassLength;
console.log(obj,'obg');
Object.defineProperty(this, "globalPassLength", { //这里的 globalData对应 上面 globalData
configurable: true,
enumerable: true,
set: function (item) { //动态赋值,传递对象,为 globalData 中对应变量赋值
obj.cursorShow = item.cursorShow
method(item);
},
get: function () { //获取全局变量值,直接返回全部
return obj;
}
})
},
2.组件中使用
attached() {
app.watch(this.watchNum)
},
methods:{
watchNum(val) { //这里的val 就是 app.js 中 watch 方法中的 set, 返回整个 globalData
console.log(val); //这里正常获取到改变的值
this.setData({ //Cannot read property 'setData' of undefined
cursorShow: val.cursorShow
})
}
}