вторник, 25 октября 2016 г.

Detect a click outside of a React Component

Данный код необходим, если вы хотите обработать клик вне компонента React.
Например у вас есть компонент представляющий из себя модальное окно и вы хотите скрыть его при клике вне его границ.

class WindowComponent extends React.Component () {

    constructor (props) {
        super(props);
        this.state = {
            visible: true
        };
    }
 
    componentDidMount () {
        document.addEventListener('click', this.handleClickOutside.bind(this), true);
    }

    componentWillUnmount () {
        document.removeEventListener('click', this.handleClickOutside.bind(this), true);
    }

    handleClickOutside (event) {
        const domNode = ReactDOM.findDOMNode(this);
        if ((!domNode || !domNode.contains(event.target))) {
            this.setState({
                visible: false
            });
        }
    }
 
    render () {
        return (
            <div className={this.state.visible ? '' : 'hidden'}>Модальное окно</div>
        );
    }

}

1 комментарий:

  1. Thanks for sharing, nice post! Post really provice useful information!

    An Thái Sơn chuyên võng điện máy đưa võng hay võng điện cho bé và chia sẻ kinh nghiệm giúp quý khách biết cục điện đưa võng giá bao nhiêu cũng như máy đưa võng loại nào tốt nhất cho giấc ngủ của bé.

    ОтветитьУдалить