使用Taro开发微信小程序时,发现元素的样式并不能像react那样直接从父组件传入到子组件中。
微信小程序开发文档中有说明:
默认情况下,自定义组件的样式只受到自定义组件 wxss 的影响
所以我们需要借助微信小程序提供的能力去传入样式,我们可以使用Component中的externalClasses。
这个特性可以用于实现类似于 view 组件的 hover-class 属性:页面可以提供一个样式类,赋予 view 的 hover-class ,这个样式类本身写在页面中而非 view 组件的实现中。
注意:在同一个节点上使用普通样式类和外部样式类时,两个类的优先级是未定义的,因此最好避免这种情况。
定义my-class为外部样式类
static externalClasses = ['my-class']
<View className='bg-progress my-class'>
传入对应的样式类给my-class属性
<Parent
my-class={ "progress-bar" }
></Parent>