1
我有反應組件,我使用componentDidMount
生命週期鉤綁定mousedown
事件到文檔。當鼠標向下事件觸發時,我綁定兩個更多的事件mousemove
和mouseup
到文檔也我刪除這些事件在mouseup
事件。document.removeEventListner無法刪除事件中的反應
我的問題是當mouseup
事件觸發它假設刪除mousemove
和mouseup
但它不工作。相反,每次我點擊頁面mouseup
觸發多次,如:1,3,6,10,15 ...它的倍增。
當componentWillUnmount
也沒有從文件刪除事件。
import React, { Component } from 'react'
class SandBox extends Component{
componentDidMount(){
document.addEventListener('mousedown', this.mouseDown.bind(this))
}
//mouseDown
mouseDown(){
document.addEventListener('mouseup', this.mouseUp.bind(this))
document.addEventListener('mousemove', this.mouseMove.bind(this))
}
//mouseUp
mouseUp(){
// this is not removing the events from document
document.removeEventListener('mouseup', this.mouseUp, false)
document.removeEventListener('mousemove', this.mouseMove, false)
// this triggers 1,3,6,10,15 times
console.log('mose up')
}
moseMove(){
// mosemoveCodes
}
}
使用forceUpdate也許? –
的可能的複製[功能卸載,但是,事件偵聽仍在執行(https://stackoverflow.com/questions/44133311/function-unmounted-but-still-executing-on-eventlistener) – duwalanise
@duwalanise它不是同樣的問題,我問題是我不能刪除事件。這個問題是事件組件卸載後觸發。 –