Ich bin neu in Reactjs
und bei der Verwendung von setTimeOut
ich festgefahren, was ist der beste Weg zu stoppen it.Should ich clearTimeOut
oder stopPropagation()
zu stoppen.Wie SetTimeout onClick in Reactjs
Dies ist mein Code
render: function() {
return (< div className = "colorClick"
style = {
{
background: this.state.bgColor
}
}
onClick = {
this.detectColor
} > < /div><br/ >
);
},
calcTime: function() {
var time = Math.floor((Math.random() * 9) + 1);
this.setState({
total_time: time
},() => {
window.setTimeout(this.calcTime, 250)
});
},
detectColor: function(event) {
window.clearTimeout(this.state.total_time);
window.clearTimeout(this.calcTime);
},
componentDidMount: function() {
this.calcTime();
},
componentWillUnmount: function() {
this.detectColor();
}
In diesem Code ich clearTimeOut
verwende, aber es ist nicht working.I wollen, dass, wenn ich auf div
mit className="colorClick"
klicken, sollte der setimeOut löschen und zurücksetzen.
Ich bin schon so sein vorgeschlagen tun in w3school.The setTimeOut arbeiten an this.state .total_time und ich mache clearTimeOut, aber funktioniert immer noch nicht –
Sie verwenden die Funktion calcTime als Parameter für clearTimeout. So funktioniert es nicht - es muss die ID von setTimeout zurückgegeben werden. Siehe auch die Dokumente von [MDN] (https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/clearTimeout), sozusagen die "Quelle der Wahrheit". –