任何有兴趣,我用的时候遇到了同样的问题CSS模块和反应的CSS模块。
大多数组件具有关联的css模块样式,在此示例中,我的Button和Promo父组件也具有自己的css文件。但我想从促销中将一些其他样式传递给Button
因此,功能style
强大的Button如下所示:
Button.js
import React, { Component } from 'react'
import CSSModules from 'react-css-modules'
import styles from './Button.css'
class Button extends Component {
render() {
let button = null,
className = ''
if(this.props.className !== undefined){
className = this.props.className
}
button = (
<button className={className} styleName='button'>
{this.props.children}
</button>
)
return (
button
);
}
};
export default CSSModules(Button, styles, {allowMultiple: true} )
在上面的Button组件中,Button.css样式处理常见的按钮样式。在这个例子中只是一个.button
类
然后,在我想使用Button的组件中,并且我还想修改诸如按钮位置之类的内容,我可以在其中设置其他样式Promo.css
并将其作为className
道具传递。在此示例中,再次称为.button
类。我可以称它为任何东西,例如promoButton
。
当然,对于css模块,此类将是此类,.Promo__button___2MVMD
而按钮一将是类似.Button__button___3972N
Promo.js
import React, { Component } from 'react';
import CSSModules from 'react-css-modules';
import styles from './Promo.css';
import Button from './Button/Button'
class Promo extends Component {
render() {
return (
<div styleName='promo' >
<h1>Testing the button</h1>
<Button className={styles.button} >
<span>Hello button</span>
</Button>
</div>
</Block>
);
}
};
export default CSSModules(Promo, styles, {allowMultiple: true} );