uI ont réagir composant, i utilisation crochet du cycle de vie componentDidMount
pour lier mousedown
événement à le document. Lorsque déclenchant l'événement de souris vers le bas je lie deux autres événements mousemove
et mouseup
à document également je supprime ces événements à mouseup
événement.document.removeEventListner pas enlever événement dans reactjs
Mon problème est quand l'événement mouseup
le déclenchant supposé enlever mousemove
et mouseup
mais son ne fonctionne pas. Au lieu de chaque fois que je clique sur la page mouseup
déclenchant plusieurs fois comme: 1, 3, 6, 10, 15 ... il se multiplie.
Lorsque componentWillUnmount
également ne pas supprimer l'événement de document.
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
}
}
pouvez-vous utiliser forceUpdate? –
Copie possible de [Fonction non montée mais exécutée sur eventlistener] (https://stackoverflow.com/questions/44133311/function-unmounted-but-still-executing-on-eventlistener) – duwalanise
@duwalanise ce n'est pas le même problème, mon question est que je ne peux pas supprimer les événements. cette question est le déclenchement d'un événement après le démontage du composant. –