收藏
回答

请问如何在自定义组件的属性名里使用中划线(比如form-type)?

系统的button组件有个form-type的属性,我想在系统button的基础上封装一个自己的button,这个button也有form-type属性。我是这么定义的:


Component({

  properties: {

    "form-type": String,

    ...

},


lifetimes: {

    attached() {

      console.log(this.data["form-type"])        //undefined

}

}

}


<custombtn form-type="submit">Submit</custombtn>


这样子 this.data["form-type"] 取出来的值是空的,如果把中划线去掉就没问题,请问为什么会这样子呢?






回答关注问题邀请回答
收藏

2 个回答

  • var 友原
    var 友原
    2019-01-08

    看一下文档,文档是说属性名定义的时候用驼峰命名,使用的时候再用中划线,也就是说你这个

      properties: {

        "form-type": String,

        ...

    },

    改为

      properties: {

        "formTtype": String,

        ...

    },

    用的时候还是这样<custombtn form-type="submit">Submit</custombtn>应该就行了

    2019-01-08
    赞同 3
    回复
  • NerdyCat
    NerdyCat
    2019-01-08

    多谢,确实是这样子。


    附上文档地址:

    https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/component.html


    注意:在 properties 定义段中,属性名采用驼峰写法(propertyName);在 wxml 中,指定属性值时则对应使用连字符写法(component-tag-name property-name="attr value"),应用于数据绑定时采用驼峰写法(attr="{{propertyName}}")。

    2019-01-08
    赞同
    回复
登录 后发表内容