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 stylebouton 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 .buttonclasse
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.csset passer comme classNameaccessoire. Dans cet exemple encore appelé .buttonclass. J'aurais pu l'appeler n'importe quoi, par exemple promoButton.
Bien sûr, avec les modules css, cette classe sera .Promo__button___2MVMDalors 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} );