元件移除

componentWillUnmount()

從 DOM 解除安裝元件之前呼叫此方法。

這是一個執行清潔操作的好地方,例如:

  • 刪除事件偵聽器。
  • 清除計時器。
  • 停止套接字。
  • 清理 redux 狀態。
componentWillUnmount(){
  ...
}

componentWillUnMount 中刪除附加事件偵聽器的示例

import React, { Component } from 'react';

export default class SideMenu extends Component {

  constructor(props) {
    super(props);
    this.state = {
        ...
      };
    this.openMenu = this.openMenu.bind(this);
    this.closeMenu = this.closeMenu.bind(this);
  }

  componentDidMount() {
    document.addEventListener("click", this.closeMenu);
  }

  componentWillUnmount() {
    document.removeEventListener("click", this.closeMenu);
  }

  openMenu() {
    ...
  }

  closeMenu() {
    ...
  }

  render() {
    return (
      <div>
        <a
          href      = "javascript:void(0)"
          className = "closebtn"
          onClick   = {this.closeMenu}
        >
          ×
        </a>
        <div>
          Some other structure
        </div>
      </div>
    );
  }
}