收藏
回答

组件中的Boolean属性赋值问题

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 Bug Component 工具 2.8.1 2.8.1

组件Boolean属性值的时候,前面一种方式是不行的,得用后面一种,这应该是个bug吧?原生组件都可以用前面这种方式赋值,自定义组件却要换种方式,很让人疑惑,最好能保持一致。

<itemlist isShow="false" />

<itemlist isShow="{{false}}" />

代码片段:https://developers.weixin.qq.com/s/78Y9Q4m177bs


补充:

谢谢网友提醒,原生组件也是这样的行为,不过布尔值赋值还需要使用数据绑定的方式,有点奇葩(参考下HTML或者其它前端开发的场景),要是能隐式转换一下就好了,毕竟已经声明了那个属性是Boolean

最后一次编辑于  09-02
回答关注问题邀请回答
收藏

3 个回答

  • 微盟
    微盟
    09-02

    在 react和 vue 中可以直接采用第一种写法,也可以直接 <itemlist isShow/> ; 而在小程序中组件的写法;需要适应小程序自身的一个语法的转换;就好比写 es6 的时候, 需要用 babel 去转 成 ast ;然后在渲染出来; 小程序的底层也应该有这么一套逻辑;必须适应小程序自身的语法,才可以去编译,转换;


    09-02
    赞同
    回复 1
    • Passenger
      Passenger
      09-05
      谢谢
      09-05
      回复
  • waterfall
    waterfall
    09-02

    原生组件也得这么赋值

    09-02
    赞同
    回复 1
    • Passenger
      Passenger
      09-02
      平时都使用的绑定,很少留意,不过这样的使用方式很奇怪,我明明已经声明了Boolean,最好能做好隐式转换
      09-02
      回复
  • 管凯旋
    管凯旋
    09-02

    你这代码片段说明了啥,带{{}}是布尔值,不带双引号是字符串,没问题啊

    09-02
    赞同
    回复 2
    • Passenger
      Passenger
      09-02
      谢谢提醒,貌似是我记错了原生组件的行为了,不过布尔值赋值还需要使用数据绑定的方式,有点奇葩(参考下HTML或者其它前端开发的场景),要是能隐式转换一下就好了,毕竟已经声明了那个属性是Boolean
      09-02
      回复
    • 管凯旋
      管凯旋
      09-02回复Passenger
      我记得可以通过{}单大括号赋值布尔值
      09-02
      回复
问题标签