I have a component that makes use of CSS-Modules, by means of the babel-plugin-react-css-modules
plugin.
At some points during the lifetime of the component I want to be able to calculate new dimensions for it, by accessing the DOM directly.
In my SCSS stylesheet I have a class named .full-width
that I want to apply to the component's DOM element, in order to make a calculation, and then remove it again.
Now, since adding the class and removing it a fraction of a second later does not affect the component or its state, I want to add and remove the class by directly accessing the DOM and not going through the hoops of somehow relating it to the component's state
.
If I do this.DOMReference.classList.add('full-width');
the class full-width
is added to it, but I want to add the modularised version of the class, as it would be applied if I did styleName="full-width"
(for example Component__full-width___Pjd10
)
Is there any way to do this without making .full-width
a global declaration?
Would I be able to do this with react-css-modules
?
Well, I realised I can import the styles under a variable, instead of anonymously, for example
import styles from './styles.scss'
instead of import './styles.scss'
and then I can use it as such
this.DOMReference.classList.add(styles['full-width']);
I also don't have to use styleName="styles.someClass"
either, I can simply use styleName="someClass"
(as long as there is only one stylesheet file imported, otherwise you need to do it as the former)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With