收藏
回答

自定义组件样式:host()使用标签会被过滤的问题

问题模块 框架类型 问题类型 终端类型 微信版本 基础库版本
框架 小程序 Bug 客户端 7.0.3 2.6.5

目前自定义组件可以使用:host(.test)给具有.test类名的组件设置样式;

开发者工具调试发现:host(.test)会被编译为类似.test[is="components/ui-button/ui-button"]的选择器。



可当我尝试使用标签,而非类名时,如:host(ui-button);发现编译时会过滤掉括号以及其中的内容,选择器会变成:host;


我知道为了避免污染自定义组件中禁止了标签选择器,可:host(ui-button)若是被编译成ui-button[is="components/ui-button/ui-button"],应该是不会存在污染问题的;希望使用:host(ui-button)这种写法时不再过滤括号及其中内容。


如果支持这种写法,可以根据usingComponents中定义的组件名,使用不同的样式,而不需要再写class,使用起来会方便许多。


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

1 个回答

  • 小程序技术专员-LastLeaf
    小程序技术专员-LastLeaf
    04-10

    :host(...) 的写法现在有 bug (即使是使用 class )。所以现在并不推荐这么做。


    不过你的建议看起来还不错。我们之后会考虑支持。

    04-10
    赞同 1
    回复 8
    • Gavin
      Gavin
      04-11

      你好,请教一个问题,

      A小程序能能否转发B小程序链接

      同一个公众号下两个小程序:供角色A使用的小程序A和供角色B使用的小程序B

      角色A通过小程序A编辑并分享条目链接给角色B,角色B在小程序B打开该链接处理条目

      原问题在:

      https://developers.weixin.qq.com/community/develop/doc/0002e6172e8af0601b58c7af351800

      没有官方回复


      多谢!

      04-11
      回复
    • 小程序技术专员-LastLeaf
      小程序技术专员-LastLeaf
      04-11回复Gavin

      不可以。

      原问题下面的回答已经比较充分了,可以作为参考。

      04-11
      回复
    • Gavin
      Gavin
      04-12回复小程序技术专员-LastLeaf

      那建议支持一下,不然感觉小程序生态不完整,放在一个小程序内部耦合的厉害

      04-12
      回复
    • Gavin
      Gavin
      04-25回复小程序技术专员-LastLeaf

      能不能提供动态设置tab对应page的功能?现在只有图标和文字可以设置

      04-25
      回复
    • 小程序技术专员-LastLeaf
      小程序技术专员-LastLeaf
      04-26回复Gavin

      目前没有这样的计划。请考虑使用“自定义 tabbar”。

      04-26
      回复
    查看更多(3)