Do not call setState from unmounted component (#3853)
Stop an executing task if the component already unmounted.
This commit is contained in:
		
							parent
							
								
									eb832e88f4
								
							
						
					
					
						commit
						1fc6cb4997
					
				
					 1 changed files with 8 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -86,6 +86,8 @@ class Status extends ImmutablePureComponent {
 | 
			
		|||
      this.node,
 | 
			
		||||
      this.handleIntersection
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
    this.componentMounted = true;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  componentWillUnmount () {
 | 
			
		||||
| 
						 | 
				
			
			@ -96,6 +98,8 @@ class Status extends ImmutablePureComponent {
 | 
			
		|||
    }
 | 
			
		||||
 | 
			
		||||
    this.props.intersectionObserverWrapper.unobserve(this.props.id, this.node);
 | 
			
		||||
 | 
			
		||||
    this.componentMounted = false;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  handleIntersection = (entry) => {
 | 
			
		||||
| 
						 | 
				
			
			@ -116,6 +120,10 @@ class Status extends ImmutablePureComponent {
 | 
			
		|||
  }
 | 
			
		||||
 | 
			
		||||
  hideIfNotIntersecting = () => {
 | 
			
		||||
    if (!this.componentMounted) {
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // When the browser gets a chance, test if we're still not intersecting,
 | 
			
		||||
    // and if so, set our isHidden to true to trigger an unrender. The point of
 | 
			
		||||
    // this is to save DOM nodes and avoid using up too much memory.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue