问题模块 | 框架类型 | 问题类型 | API/组件名称 | 终端类型 | 微信版本 | 基础库版本 |
---|---|---|---|---|---|---|
API和组件 | 小程序 | Bug | 自定义组件 | 客户端 | 7.0.3.1400 | 2.6.5 |
我在使用文档中推荐的方法来监听组件属性变换时,发现组件的父页面使用setData设置组件的字段值,组件内部监听没有反应,不知道是不是我使用的姿势不对, 父页面:
<LineChart pointdata="{{StraightnessList}}"></LineChart> StraightnessList是一个数组,一维,
组件的js文件中:
/** * 组件的属性列表 */ properties: { pointdata:{ type:Array, value:[], observer(newVal, oldVal, changedPath) { // 属性被改变时执行的函数(可选),通常 newVal 就是新设置的数据, oldVal 是旧数 // 新版本基础库不推荐使用这个字段,而是使用 Component 构造器的 observer 字段代替(这样会有更强的功能和更好的性能) console.log( '数据改变' ,newVal); } }, //数据数组 } |
我使用推荐的方式,在Component中定义字段!
/** * 数据监-听 */ observers:{ 'pointdata' : function (pointdata) { // 在 numberA 或者 numberB 被设置时,执行这个函数 console.log( '组件点数据' , pointdata); } }, |
我发现下面的log,始终无法输出,而 属性列表中的方法,能很正常的输出,组件内的setData应该是可以的,文档例子中就是在组件内setData,但是在组件父页面 setData,就无效了!