दिलचस्पी रखने वाले किसी के लिए, मैं css मॉड्यूल का उपयोग करते समय और css मॉड्यूल प्रतिक्रिया करते समय इसी समस्या में भाग गया ।
अधिकांश घटकों में एक संबद्ध सीएसएस मॉड्यूल शैली होती है, और इस उदाहरण में मेरे बटन की अपनी सीएसएस फ़ाइल है, जैसा कि प्रोमो पैरेंट घटक है। लेकिन मैं प्रोमो से बटन के लिए कुछ अतिरिक्त शैलियों को पारित करना चाहता हूं
तो 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.css शैलियाँ सामान्य बटन शैलियों को संभालती हैं। इस उदाहरण में सिर्फ एक .button
वर्ग
फिर मेरे घटक में जहां मैं बटन का उपयोग करना चाहता हूं , और मैं बटन की स्थिति जैसी चीजों को भी संशोधित करना चाहता हूं, मैं अतिरिक्त शैलियों को सेट कर सकता हूं Promo.css
और className
प्रोप के माध्यम से गुजर सकता हूं । इस उदाहरण में फिर से .button
कक्षा कहा जाता है । मैं इसे कुछ भी कह सकता था promoButton
।
बेशक सीएसएस मॉड्यूल के साथ यह वर्ग होगा .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} );