2016-06-15 43 views
0

現在、React Nativeアプリを作成しており、小さな問題が発生しています。ボタンを押したままにすると、ボタンを離すまで機能を繰り返し実行します。React Native onPressIn

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

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

私はif文は一度だけのコードを実行することを知っているが、私が試した他のすべての方法が全く機能しなかった、と何かを許可しなかったif文の代わりにwhileループ:ここでは関数であります走る。私のボタンがリリースされると、録音はfalseに設定されます(これはコードの先頭にグローバル変数として宣言されています)

答えて

0

コンポーネント全体を見ることなく、開始日:

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) 
}