Using the css-in-js method to add classes to a react component, how do I add multiple components?
Here is the classes variable:
const styles = theme
You can add multiple string classes and variable classes or props classes at same time in this way
className={`${classes.myClass} ${this.props.classes.myClass2} MyStringClass`}
three classes at same time
you can use string interpolation:
<div className={`${this.props.classes.container} ${this.props.classes.spacious}`}>
You could use clsx. I noticed it used in the MUI buttons examples
First install it:
npm install --save clsx
Then import it in your component file:
import clsx from 'clsx';
Then use the imported function in your component:
<div className={ clsx(classes.container, classes.spacious)}>
As already mentioned, you can use string interpolation
className={`${this.props.classes.container} ${this.props.classes.spacious}`}
And you can try classnames
library,
https://www.npmjs.com/package/classnames
classNames
package can also be used as advanced as:
import classNames from 'classnames';
var arr = ['b', { c: true, d: false }];
classNames('a', arr); // => 'a b c'
let buttonType = 'primary';
classNames({ [`btn-${buttonType}`]: true }); // => 'btn-primary'