gpt4 book ai didi

javascript - 当离开 React 页面时,是否需要取消绑定(bind)/删除事件监听器?

转载 作者:行者123 更新时间:2023-12-03 04:39:16 25 4
gpt4 key购买 nike

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

Warning: setState(...): Can only update a mounted or mounting component. This usually means you called setState() on an unmounted component. This is a no-op. Please check the code for the LandingPageHeader component.

我是否需要在(页面 A)的 componentWillUnmount() 函数中取消绑定(bind)这些监听器?还是有其他事情发生?另外,其中一些事件监听器绑定(bind)到 html 标记是否重要?

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

最佳答案

是的,你可以在componentWillUnmount中取消绑定(bind)事件监听,或者在页面A组件中设置一个标志,每次setState之前检查这个标志。

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

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

componentWillUnmount() {
this._mounted = false;
}

关于javascript - 当离开 React 页面时,是否需要取消绑定(bind)/删除事件监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43151798/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com