Для всіх, хто цікавиться, я зіткнувся з цією ж проблемою, використовуючи css-модулі та реагуючи на css-модулі .
Більшість компонентів мають асоційований стиль модуля css, і в цьому прикладі моя кнопка має власний файл css, як і батьківський компонент Promo . Але я хочу передати додаткові стилі Button від Promo
Отже, style
здатна кнопка виглядає так:
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
клас
Потім у своєму компоненті, де я хочу використовувати кнопку , і я також хочу змінити такі речі, як положення кнопки, я можу встановити додаткові стилі Promo.css
та передати їх як className
підставку. У цьому прикладі знову називається .button
class. Я міг би це назвати як завгодно, наприклад 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} );