Поэтому я сейчас пишу приложение React Native и столкнулся с небольшой проблемой. Когда я нажимаю и удерживаю кнопку, я хочу многократно запускать функцию, пока не будет нажата кнопка. Вот функция:
onButtonPressIn() {
this.setState({pressStatus: true})
recording = true
let myCallBack = () => {
setTimeout(this.executeFunction.bind(this), 50)
}
if (recording === true) {
myCallBack()
}
}
Я знаю, что оператор if выполняет код только один раз, но каждый другой метод, который я пытался, не работал вообще, а цикл while вместо оператора if не позволял ничего запускать. Также стоит отметить, что когда моя кнопка отпускается, запись устанавливается равной false (она объявляется как глобальная переменная в начале кода
Не видя всего вашего компонента, я предполагаю, что это должно помочь вам начать работу:
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)
}