Đối với bất kỳ ai quan tâm, tôi đã gặp phải vấn đề tương tự khi sử dụng mô-đun css và mô-đun phản ứng css .
Hầu hết các thành phần đều có kiểu mô-đun css được liên kết và trong ví dụ này, Nút của tôi có tệp css riêng của nó, cũng như thành phần mẹ Promo . Nhưng tôi muốn chuyển một số kiểu bổ sung cho Nút từ Quảng cáo
Vì vậy, style
nút có thể trông như thế này:
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} )
Trong thành phần Nút ở trên, các kiểu Button.css xử lý các kiểu nút phổ biến. Trong ví dụ này, chỉ một .button
lớp
Sau đó, trong thành phần của tôi, nơi tôi muốn sử dụng Nút và tôi cũng muốn sửa đổi những thứ như vị trí của nút, tôi có thể đặt các kiểu bổ sung vào Promo.css
và chuyển qua làm chỗ dựa className
. Trong ví dụ này một lần nữa được gọi là .button
lớp. Tôi có thể gọi nó là bất cứ thứ gì, ví dụ promoButton
.
Tất nhiên với mô-đun css, lớp này sẽ là .Promo__button___2MVMD
trong khi nút một sẽ giống như.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} );