Javascript 当导航离开React页面时,是否需要解除绑定/删除事件侦听器?

Javascript 当导航离开React页面时,是否需要解除绑定/删除事件侦听器?,javascript,node.js,reactjs,Javascript,Node.js,Reactjs,我正在用React制作一个web应用程序。我目前有A页和B页。A页有一些事件侦听器绑定到页面上的各种元素。但是,当我从A页导航到B页时,我的控制台中会反复出现以下错误(如几秒钟内出现几十个错误): 警告:设置状态(…):只能更新已安装或正在安装的组件。这通常意味着您在未安装的组件上调用了setState()。这是禁止操作。请检查LandingPageHeader组件的代码 是否需要在componentWillUnmount()函数(第A页)中解除这些侦听器的绑定?还是发生了什么事?另外,这些事件

我正在用React制作一个web应用程序。我目前有A页和B页。A页有一些事件侦听器绑定到页面上的各种元素。但是,当我从A页导航到B页时,我的控制台中会反复出现以下错误(如几秒钟内出现几十个错误):

警告:设置状态(…):只能更新已安装或正在安装的组件。这通常意味着您在未安装的组件上调用了setState()。这是禁止操作。请检查LandingPageHeader组件的代码

是否需要在componentWillUnmount()函数(第A页)中解除这些侦听器的绑定?还是发生了什么事?另外,这些事件侦听器中的一些绑定到html标记是否重要


还应注意,上述事件侦听器的一些事件处理程序确实执行涉及更新/设置React状态的功能

是的,您可以在
componentWillUnmount
中解除绑定事件侦听器,或者在组件的页面中设置一个标志,每次设置状态之前检查该标志

componentDidMount() {
    var _this = this;
    this._mounted = true;

    // in listenner function 
    window.addEventListener('resize', funciton () {
        if (_this._mounted) {
            _this.setState({});
        }
    });
}

componentWillUnmount() {
    this._mounted = false;
}

是的,您可以在
组件willunmount
中解除绑定事件侦听器,或者在组件的页面中设置一个标志,每次在设置状态之前检查该标志

componentDidMount() {
    var _this = this;
    this._mounted = true;

    // in listenner function 
    window.addEventListener('resize', funciton () {
        if (_this._mounted) {
            _this.setState({});
        }
    });
}

componentWillUnmount() {
    this._mounted = false;
}