Javascript window.removeEventListener不在组件上工作将卸载
这是我的代码,在组件中使用,但当我路由到另一个URL时,控制台会给我错误消息- 错误 警告:无法对已卸载的组件执行React状态更新。 这是一个no-op,但它表示应用程序中存在内存泄漏。 若要修复,请取消中的所有订阅和异步任务 componentWillUnmount方法 不知道为什么会这样!当我硬刷新并转到任何其他路由时,会出现此错误Javascript window.removeEventListener不在组件上工作将卸载,javascript,reactjs,event-handling,dom-events,Javascript,Reactjs,Event Handling,Dom Events,这是我的代码,在组件中使用,但当我路由到另一个URL时,控制台会给我错误消息- 错误 警告:无法对已卸载的组件执行React状态更新。 这是一个no-op,但它表示应用程序中存在内存泄漏。 若要修复,请取消中的所有订阅和异步任务 componentWillUnmount方法 不知道为什么会这样!当我硬刷新并转到任何其他路由时,会出现此错误 因为我使用的是箭头函数,所以我不需要在安装时使用.bind。您是否在onWindowscroll函数中执行任何状态更新?是@Siddharth,但只有在一种情
因为我使用的是箭头函数,所以我不需要在安装时使用
.bind
。您是否在onWindowscroll
函数中执行任何状态更新?是@Siddharth,但只有在一种情况下,当我的滚动到达页面底部时。否则不行,如果我没有到达底部并在应用程序中转到其他地方,那么错误就在前面出现。您不能调用像arrow函数这样的生命周期方法。async componentDidMount(){}
componentDidMount = async () => {
// await myAPI call
window.addEventListener("scroll", this.onWindowscroll);
}
onWindowscroll = async () => {
console.log('onWindowscroll);
// await myAPI call when scroll reach to bottom.
}
componentWillUnmount = () => {
window.removeEventListener('scroll', this.onWindowscroll);
console.log('componentWillUnmount H');
}