收藏
回答

组件嵌套后externalClasses失效?

// comp router
Component({
  options: {
  styleIsolation: 'apply-shared',
    virtualHost: true,
  },
  externalClasses: ['class'],
})

// comp a
// js
Component({
  options: {
    virtualHost: true,
    styleIsolation: 'apply-shared',
  }
});
// wxml
// flex-center在app.wxss中定义
<router class="flex-center">...router>

// page a
<comp-a />


开发者工具中解析出来是,并非取的page.wxss的flex-center而是取组件wxss的flex-center

直接在页面中使用router组件是符合预期的

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

3 个回答

  • 雨
    2021-02-25

    可以问下这个问题解决了吗

    2021-02-25
    有用
    回复
  • 👁
    👁
    2021-01-12

    经过测试,组件嵌套后,externalClasses会自动添加前缀,前缀为父组件以“-”分割的最后一截(父组件aa-xx-bb, 那么前缀为bb)


    2021-01-12
    有用
    回复 1
    • 👁
      👁
      2021-01-12
      猜测应该跟组件自身的组件隔离相关,组件样式隔离会给类名默认添加前缀,因此父组件隔离情况下会给所有的class 添加前缀,传给子组件的externalClasses就默认带了父组件的前缀。
      2021-01-12
      回复
  • Cjiang
    Cjiang
    2020-09-10

    你好,麻烦提供能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。

    2020-09-10
    有用
    回复 6
    • 🍊三浪🍋
      🍊三浪🍋
      2020-09-10
      https://developers.weixin.qq.com/s/gf3ETgmJ7YkJ
      麻烦看下哈
      2020-09-10
      回复
    • Cjiang
      Cjiang
      2020-09-10回复🍊三浪🍋
      externalClasses是可以生效的,只是类名会出现错误,我反馈下这个问题。
      2020-09-10
      回复
    • 🍊三浪🍋
      🍊三浪🍋
      发表于移动端
      2020-09-11回复Cjiang
      是的 取得是compb下的class 谢谢啦
      2020-09-11
      回复
    • 🍊三浪🍋
      🍊三浪🍋
      2020-09-11
      刚仔细看了下,需求是comp-b中的comp-a的class想取app.wxss的,取comp-b的是没问题的。
      2020-09-11
      回复
    • 🍊三浪🍋
      🍊三浪🍋
      2020-09-11
      现在comp-a是无法取到app.wxss的
      2020-09-11
      回复
    查看更多(1)
登录 后发表内容
问题标签