cleanup listeners on document before unmount
parent
8d2e8ca338
commit
68b23d2919
|
@ -43,6 +43,12 @@ class Dropdown extends React.Component {
|
|||
}
|
||||
}
|
||||
|
||||
componentWillUnmount () {
|
||||
if (this.state.active) {
|
||||
events.removeEventsFromDocument({click: this.handleDocumentClick});
|
||||
}
|
||||
}
|
||||
|
||||
handleDocumentClick = (event) => {
|
||||
if (this.state.active && !events.targetIsDescendant(event, ReactDOM.findDOMNode(this))) {
|
||||
this.setState({active: false});
|
||||
|
|
|
@ -83,6 +83,12 @@ class Menu extends React.Component {
|
|||
}
|
||||
}
|
||||
|
||||
componentWillUnmount () {
|
||||
if (this.state.active) {
|
||||
events.removeEventsFromDocument({click: this.handleDocumentClick});
|
||||
}
|
||||
}
|
||||
|
||||
handleDocumentClick = (event) => {
|
||||
if (this.state.active && !events.targetIsDescendant(event, ReactDOM.findDOMNode(this))) {
|
||||
this.setState({active: false, rippled: false});
|
||||
|
|
|
@ -55,6 +55,9 @@ class Slider extends React.Component {
|
|||
|
||||
componentWillUnmount () {
|
||||
window.removeEventListener('resize', this.handleResize);
|
||||
events.removeEventsFromDocument(this.getMouseEventMap());
|
||||
events.removeEventsFromDocument(this.getTouchEventMap());
|
||||
events.removeEventsFromDocument(this.getKeyboardEvents());
|
||||
}
|
||||
|
||||
handleInputFocus = () => {
|
||||
|
|
|
@ -30,6 +30,11 @@ class Hand extends React.Component {
|
|||
this.setState({knobWidth: this.refs.knob.offsetWidth});
|
||||
}
|
||||
|
||||
componentWillUnmount () {
|
||||
events.removeEventsFromDocument(this.getMouseEventMap());
|
||||
events.removeEventsFromDocument(this.getTouchEventMap());
|
||||
}
|
||||
|
||||
getMouseEventMap () {
|
||||
return {
|
||||
mousemove: this.handleMouseMove,
|
||||
|
|
Loading…
Reference in New Issue