Component里的Boolean类型的Property取值异常
发布于 6 年前 作者 qjiang 19561 次浏览 来自 问答
  • 当前 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?

2 回复

有没有解决兄弟

大家跳转小程序的时候有没有遇到过这个问题啊?navigateToMiniProgramAppIdList

回到顶部