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