Taro编写微信小程序时,自定义组件样式引入后不生效
1. 问题使用 Taro 开发微信小程序的时候,将原来的? 2. 解决:查阅? 自定义组件对应的样式文件,只对该组件内的节点生效。编写组件样式时,需要注意以下几点:
#a { } /* 在组件中不能使用 */
[a] { } /* 在组件中不能使用 */
button { } /* 在组件中不能使用 */
.a > .b { } /* 除非 .a 是 view 组件节点,否则不一定会生效 */
真香,原来是第2点的原因,本人使用了后代选择器,? 3. 解决自定义组件样式使用问题3.1 自定义组件制定默认样式组件可以指定它所在节点的默认样式,使用? /* 该自定义组件的默认样式 */
:host {
color: red;
font-weight: bold;
font-size: 30PX;
}
3.2 externalClasses 定义若干个外部样式类MyPage.jsexport default class MyPage extends Component {
render () {
return <CustomComp my-class="red-text" />
}
}
MyPage.scss.red-text {
color: red;
}
CustomComp.js-class']
render () {
View className="my-class">这段文本的颜色由组件外的 决定</View>
}
}
上面的 CustomComp 使用了ES6 extends来创建了组件,那么问题来了,如果是? export default function CustomComp (props){
CustomComp.externalClasses = ['my-class']
render () {
return <View className="my-class">这段文本的颜色由组件外的 class 决定</View>
}
}
注意:? 3.3 全局样式类使用外部样式类可以让组件使用制定的组件样式类,如果希望组件外样式类能够完全影响组件内部吗可以将组件构造器中的? 组件外的样式定义如果使用函数式组件
|