Как обрабатывать несколько нажатий нескольких кнопок в реагировать родной - PullRequest
0 голосов
/ 24 сентября 2019

У меня несколько кнопок на экране, и все они независимы, например, одна кнопка предназначена для перехода на следующую страницу, другая - для всплывающего календаря и т. Д. Когда я быстро нажимаю на все эти кнопки, все нажатия запускаются, и я пыталсяиспользуя отключение кнопок с помощью логической переменной состояния.Но все же я могу нажать на кнопку в течение установленного времени.Так есть ли способ предотвратить это?

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 24 сентября 2019

Может быть проблема с привязкой функции.Возможно, функция не была привязана, что делает их вызываемыми даже без касания.

0 голосов
/ 24 сентября 2019

Вы можете легко добиться этого, используя метод setState.Однако будьте осторожны, так как заданное состояние асинхронно.Для простого сценария вы можете сделать это следующим образом:

constructor(props) {

    super(props); 

    this.state = {    
        enableButton: false 
    };
}

И затем использовать вашу кнопку или TouchableOpacity следующим образом:

<TouchableOpacity
        disabled={this.state.enableButton}
        onPress={() => handleMe()}>
        <Text>
            {text}
        </Text>
 </TouchableOpacity>

А затем для включения вашей кнопки:

handleMe() {
    this.setState({
        enableButton: true
    });
}

Дайте мне знать, если вы все еще в замешательстве.

...