<div id="example"></div>
* {
  font-family: Helvetica, Arial, sans-serif
}

#example-container {
  position: relative;
}

#hot-preview { 
  #hot {
    overflow: hidden;
    width: 700px;
    height: 400px;
  }
}
View Compiled
class ExampleComponent extends React.Component {
  constructor(props) {
    super(props);
    
    this.state = {
      settings: {
        data: [
          [1, 'a'],
          [2, 'b']
        ],
        colHeaders: ['Number', 'Text'],
        columns: [
          {type: 'numeric'},
          {type: 'text'}
        ],
    }
    }
    this.hotTableComponent = React.createRef();
  }
 
  handleClick = () => {
    this.setState({
      testValue: true,
    });
  }
  
  shouldComponentUpdate() {
    return false;
  }
  
  render() {
    return (
      <div id="example-component">
        <div id="hot-preview">
           <button onClick={this.handleClick}>Click Me!</button>
        <HotTable root="hot" ref={this.hotTableComponent} settings={this.state.settings} />
          </div>
      </div>
    );
  }
}

ReactDOM.render(<ExampleComponent />, document.getElementById('example'));
View Compiled
Run Pen

External CSS

  1. https://docs.handsontable.com/bower_components/handsontable/dist/handsontable.full.min.css
  2. https://cdnjs.cloudflare.com/ajax/libs/pikaday/1.5.1/css/pikaday.min.css

External JavaScript

  1. https://cdnjs.cloudflare.com/ajax/libs/react/16.8.4/umd/react.production.min.js
  2. https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.8.4/umd/react-dom.production.min.js
  3. https://docs.handsontable.com/bower_components/handsontable/dist/handsontable.full.min.js
  4. https://unpkg.com/react-handsontable/dist/react-handsontable.min.js