Простое оповещение в React Native - функция при нажатии - PullRequest
0 голосов
/ 31 января 2019

В React Native у нас есть возможность использовать Alert для уведомления пользователя во всплывающем окне.Эти «простые» оповещения могут быть составлены с помощью:

Alert.alert('Hello world!')

, который создает оповещение с сообщением, без заголовка и кнопкой «ОК».

Вы также можете сделать 2 или 3 кнопочных оповещения, которые составляются следующим образом (пример с 2 кнопками):

Alert.alert(
  'Alert Title',
  'My Alert Msg',
  [
    {
      text: 'Ask me later', 
      onPress: () => console.log('Ask me later pressed')
    },
    {
      text: 'Cancel',
      onPress: () => console.log('Cancel Pressed'),
      style: 'cancel',
    },
    {
      text: 'OK', 
      onPress: () => console.log('OK Pressed')
    },
  ],
  {cancelable: false},
);

Обратите внимание, что здесь у вас есть опции для функции onPress длякнопки

Что меня интересует, так это то, что я могу применить onPress для первого случая, когда нажата 'OK', но нет примера (или каких-либо подробностей!) в официальномдокументы

Возможно, это (пока) невозможно.Кто-нибудь может подтвердить или опровергнуть?

Ответы [ 2 ]

0 голосов
/ 31 января 2019

Вы можете создать это, если не хотите использовать заголовок

Alert.alert(
     '',
     'Are you sure you want to delete?'+notificationId,  
     [
        {text: 'Cancel', onPress: () => console.log('Cancel Pressed'), style: 'cancel'},
        {text: 'OK', onPress: () => console.log('OK Pressed')},
     ],
     { cancelable: false }
)
0 голосов
/ 31 января 2019

Вы можете создать Alert только с одной кнопкой.Затем вы можете решить, что произойдет, когда вы нажмете OK.

https://facebook.github.io/react-native/docs/alert

iOS

В iOS вы можете указать любое количество кнопок.Каждая кнопка может опционально указывать стиль, который является одним из «по умолчанию», «отмена» или «деструктивный».

Android

На Android можно указать не более трех кнопок.У Android есть концепция нейтральной, отрицательной и положительной кнопок:

  • Если вы укажете одну кнопку, она будет «положительной» (например, «OK»)
  • Две кнопки означают «отрицательный», «положительный» (например, «Отмена», «ОК»)
  • Три кнопки означают «нейтральный», «отрицательный», «положительный» (например, «Позже», «Отмена»',' OK ')

Поэтому, если вам нужна только одна кнопка, вы можете сделать что-то вроде этого.

Alert.alert(
  'Alert Title',
  'My Alert Msg', // <- this part is optional, you can pass an empty string
  [
    {text: 'OK', onPress: () => console.log('OK Pressed')},
  ],
  {cancelable: false},
);

Если вы используете Alert.alert('Hello world!') без передачиВ любом случае, нет никакой возможности определить, что происходит, когда вы нажимаете OK. Единственный способ сделать это - сделать что-то, как я показал выше.Если вы хотите, чтобы он выглядел одинаково на экране, просто передайте пустую строку для сообщения.И заголовок, и сообщение могут быть пустыми строками, хотя вы, вероятно, не хотите, чтобы оба были одновременно.

...