I'm changing the class attribute of my props and then i want the component to rerender with the new classes but that doesn't work. I've read about the shouldComponentUpdate method but that method never gets called.
  var ReactDOM = require('react-dom');
  var React = require('react');
   class Button extends React.Component {
constructor(props) {
    super(props);
    console.log("BUTTON")
    console.log(props);
    var options = props.options;
}
componentWillMount () {
    var defaultFeatureOptionId = this.props.feature.DefaultFeatureOptionId;
    this.props.options.forEach((option) => {
        var classes = "";
        if (option.Description.length > 10) {
            classes = "option-button big-button hidden";
        } else {
            classes = "option-button small-button hidden";
        }
        if (option.Id === defaultFeatureOptionId) {
            classes = classes.replace("hidden", " selected");
            option.selected = true;
        }
        option.class = classes;
    });
}
shouldComponentUpdate(props) {
    console.log("UPDATE");
}
toggleDropdown(option, options) {
    console.log(option);
    console.log(options)
    option.selected = !option.selected;
    options.forEach((opt) => {
        if (option.Id !== opt.Id) {
            opt.class = opt.class.replace("hidden", "");
        }
        else if(option.Id === opt.Id && option.selected) {
            opt.class = opt.class.replace("", "selected");
        } 
    });        
}
render() {
    if (this.props.options) {
        return (<div> {
            this.props.options.map((option) => {
                return <div className={ option.class } key={option.Id}>
                    <div> {option.Description}</div>
                    <img className="option-image" src={option.ImageUrl}></img>
                    <i className="fa fa-chevron-down" aria-hidden="true" onClick={() => this.toggleDropdown(option, this.props.options) }></i>
                    </div>
            })
        }
        </div>
        )
    }     
    else {
        return <div>No options defined</div>
    }
}
 }
 module.exports = Button;
I have read a lot of different thing about shouldComponentUpdate and componentWillReceiveProps but there seems to be something else i'm missing.
 
    