Component里的Boolean类型的Property取值异常
- 当前 Bug 的表现(可附上截图) 自定义Component时,数据类型为Boolean的property,无法在js中获取到正确的属性值。无论页面里设置的是false还是true,js中获取到的始终为true。 - 预期表现 当Component在页面内时,对属性进行赋值或者数据绑定后,应该在js中可以获取到正确的属性值。如设置为'false'时,应该在js里获取到的也是false(布尔值),设置为'true'时,获取到的也应该是true(布尔值)。 - 复现路径 创建一个自定义Component,设置一个数据类型为Boolean的property,然后创建一个测试页面,将自定义的Component放在页面内,然后给之前定义的property设置属性为'false',然后在js里跟踪获取到的property属性值。 - 提供一个最简复现 Demo Component({ properties: { clickable: { type: Boolean, value: false, observer: function(newVal, oldVal) { this.getClickable(newVal); } } }, methods: { getClickable: function(e) { var me = this; var propValue = me.properties.clickable; console.log(propValue); //此处可以跟踪到WMXL页面里设置的property的数值,始终为true,无论WMXL里设置的是什么 } }, }) Component页面 <view> <button bindtap = 'getClickable'>Test</button> </view> 测试页面 <view> <mycomponent clickable = 'false'></mycomponent> </view> ------------------------------以下将property的数据类型换成String,问题消失--------------------------------------------- clickable: { type: String, value: 'false', } 其他部分均保持不变,在点击时,能获取到字符串'false' 而将册似乎页面的 clickable='false'改成 clickable='true'或者甚至改成clickable='any other value',都能跟踪到获取的值均没问题。 所以,是否为Boolean时,存在bug?