Pour toute personne intéressée, j'ai rencontré ce même problème lors de l'utilisation de modules css et de la réaction des modules css .
La plupart des composants ont un style de module css associé, et dans cet exemple, mon Button a son propre fichier css, tout comme le composant parent Promo . Mais je souhaite transmettre des styles supplémentaires à Button de Promo
Donc, le style
bouton capable ressemble à ceci:
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} )
Dans le composant Button ci-dessus, les styles Button.css gèrent les styles de bouton courants. Dans cet exemple, juste une .button
classe
Ensuite, dans mon composant où je veux utiliser le bouton , et je veux également modifier des choses comme la position du bouton, je peux définir des styles supplémentaires Promo.css
et passer comme className
accessoire. Dans cet exemple encore appelé .button
class. J'aurais pu l'appeler n'importe quoi, par exemple promoButton
.
Bien sûr, avec les modules css, cette classe sera .Promo__button___2MVMD
alors que le bouton sera quelque chose comme.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} );