import * as React from 'react'; import { render } from 'react-dom'; import enhanceWithClickOutside = require('react-click-outside'); interface Props { text: string; } interface State { isOpened: boolean; } class StatefulComponent extends React.Component { state = { isOpened: true }; handleClickOutside() { this.setState({ isOpened: false }); } render() { return
{this.props.text}
; } } @enhanceWithClickOutside class ComponentWithDecorator extends React.Component { state = { isOpened: true }; handleClickOutside() { this.setState({ isOpened: false }); } render() { return
{this.props.text}
; } } const ClickOutsideStatefulComponent = enhanceWithClickOutside(StatefulComponent); render(, document.getElementById('test')); render(, document.getElementById('test'));