2016-06-15 26 views
0

Also schreibe ich gerade eine React Native App und habe ein kleines Problem. Wenn ich eine Taste drücke und halte, möchte ich eine Funktion so oft ausführen, bis die Taste losgelassen wird. Hier ist die Funktion:React Native onPressIn

onButtonPressIn() { 
    this.setState({pressStatus: true}) 
    recording = true 

    let myCallBack =() => { 
    setTimeout(this.executeFunction.bind(this), 50) 
    } 
    if (recording === true) { 
    myCallBack() 
    } 
} 

Ich weiß, dass die if-Anweisung nur den Code einmal ausgeführt wird, aber jede andere Methode, die ich versucht hat nicht funktioniert, und eine while-Schleife anstelle der if-Anweisung nichts erlauben zu rennen. Es ist auch erwähnenswert, dass wenn meine Taste losgelassen wird, die Aufnahme gleich Falsch gesetzt wird (es wird als globale Variable am Anfang des Codes erklärt

Antwort

0

Ohne Ihre gesamte Komponente zu sehen, nehme ich an, das sollte Ihnen helfen, zu bekommen gestartet:

let recording = false 
let ivRecording 
... 
onButtonPressIn() { 
    this.setState({pressStatus: true}) 
    recording = true 
    ivRecording = setInterval(() => this.executeFunction(), 50) 
} 
... 
onButtonPressRelease() { 
    this.setState({pressStatus: false}) 
    recording = false 
    clearInterval(ivRecording) 
}