реагировать родной ios alert, перекрывая друг друга - PullRequest
0 голосов
/ 14 сентября 2018

Я использую Alert.alert() для отображения предупреждений в реагировать родной IOS. Проблема, с которой я сталкиваюсь, заключается в том, что, если появляется предупреждение о том же сообщении, они появляются один над другим.

В Android появляется второе предупреждение после закрытия первого.

В любом случае, чтобы заставить его вести себя как Android в IOS?

1 Ответ

0 голосов
/ 14 сентября 2018

Вы можете добавить определенное логическое состояние, чтобы проверить, является ли alert видимым или нет, например,

  state = {
    alertBoxVisible: false,
  }

  onAlertShow = () => {
    if(!this.state.alertBoxVisible) {
      this.setState({alertBoxVisible: true}, () => {
        Alert.alert(
          'Alert Title',
          'My Alert Msg',
          [
            {text: 'OK', onPress: () => this.setState({alertBoxVisible: false})},
          ],
          { cancelable: false }
        )
      })
    }
  }

, и использовать async await для объединения функций, вызывающих onAlertShow, таких как * 1007.*

onPress={async () => {
  await this.onAlertShow()
  await this.onAlertShow()
}}
...