Für alle Interessierten stieß ich auf dasselbe Problem, wenn ich CSS-Module verwendete und CSS-Module reagierte .
Den meisten Komponenten ist ein CSS-Modulstil zugeordnet. In diesem Beispiel verfügt mein Button über eine eigene CSS-Datei, ebenso wie die übergeordnete Promo- Komponente. Aber ich möchte Button von Promo einige zusätzliche Stile übergeben
Der style
fähige Button sieht also so aus:
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} )
In der obigen Button-Komponente behandeln die Button.css- Stile die allgemeinen Button-Stile. In diesem Beispiel nur eine .button
Klasse
Dann in meiner Komponente , wo ich will die verwenden Knopf , und ich möchte auch , wie die Position der Schaltfläche Dinge ändern, ich zusätzliche Stile festlegen Promo.css
und durch als className
Stütze. In diesem Beispiel wieder .button
Klasse genannt. Ich hätte es alles nennen können, z promoButton
.
Natürlich wird diese Klasse mit CSS-Modulen sein, .Promo__button___2MVMD
während die Schaltfläche so etwas wie sein wird.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} );