收藏
回答

通过prop传递外部样式类的类名?

compa

// wxml
   <view class="my-class">compa</view>
// js
Component({
  externalClasses: ['my-class']
})

compb

// wxml
  <compa my-class="{{myClass}}"/>
// js
Component({
  properties: {
    myClass: {
      type: String
      }
    }
})

page

<compb my-class="red"/>
// wxss
.red {
  color: red;
}

问题:通过prop将自定义样式的类名传递给compa,在page层写样式,无法生效!请问这样做是否可行,如果不可行如何实现上述需求


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

2 个回答

  • 一念
    一念
    02-16

    我也是遇到这样的问题,请问你解决了吗?

    02-16
    赞同
    回复 2
    • 阿辉
      阿辉
      02-17
      目前是解决了,开启组件的styleIsolation: shared; 应该就能生效,如果还没生效,调试工具看看是不是样式是不是已经生效,只是权重过低,被其他样式覆盖了
      02-17
      回复
    • 一念
      一念
      02-17回复阿辉
      是的,确实是权重过低,被覆盖了。谢谢回复
      02-17
      回复
  • undefined
    undefined
    02-06

    你看看官方的是怎么写的,都提供代码了

    02-06
    赞同
    回复 3
    • 阿辉
      阿辉
      02-06
      1. 你这么说是没错了,我看了源码,他这个用的就是extenalClasses不是properties!
      2. 我的情况和他不同,如上面提供的例子,我是在page中写样式,并把class通过prop传递到compb组件,compb通过extenalClasses传递给compa,(也没法通过两层extenalClasses直接传递)
      3. 如果将样式写在compb,样式是生效的,如果将样式直接写在page中就不生效,不知道我有没有说明白
      02-06
      回复
    • undefined
      undefined
      02-06回复阿辉
      不能像你这样做的
      02-06
      回复
    • 阿辉
      阿辉
      02-06
      可以的,我刚刚又试了一下,生效了,不知道为啥这么诡异。
      02-06
      回复
登录 后发表内容
问题标签