Как сохранить бдительность от зависания приложения на IOS? - PullRequest
0 голосов
/ 11 июня 2019

Предупреждения недавно перестали работать на всех моих реактивных приложениях на IOS. Я не изменил ничего, кроме как обновить зависимости. Они все еще отлично работают на Android. В частности, всплывает предупреждение, но затем случайным образом мигают полосы, разделяющие кнопки в окне предупреждения, и все зависает. Примерно в то же время мне также пришлось обновить мой код для всех моих реактивно-родных приложений для поведения Picker на Android. Может быть, это было совпадение или, возможно, это было вызвано тем же обновлением? Я обновил все свои зависимости одновременно, поэтому, если это проблема, я не уверен, какая именно.

Это происходит:

  • независимо от того, есть ли у меня модальный компонент на странице.

  • независимо от того, использую ли я оповещение javascript, компонент Alert из реактивного-нативного или компонент AlertIOS из реактивного-нативного.

Это просто копия и вставка из официальной реактивной документации, которую я использую на моей тестовой странице:

// Works on both iOS and Android
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},

);

Зависимости в приложении 1:

  "dependencies": {
    "@react-native-community/cameraroll": "^1.0.3",
    "@react-native-community/netinfo": "^2.0.4",
    "react": "16.8.3",
    "react-native": "0.59.5",
    "react-native-elements": "^1.1.0",
    "react-native-gesture-handler": "^1.1.0",
    "react-native-print": "^0.5.1",
    "react-native-vector-icons": "^6.4.2",
    "react-navigation": "^3.8.1"
  },
  "devDependencies": {
    "@babel/core": "^7.4.3",
    "@babel/runtime": "^7.4.3",
    "babel-jest": "^24.7.1",
    "jest": "^24.7.1",
    "metro-react-native-babel-preset": "^0.53.1",
    "react-test-renderer": "16.8.3"
  },

Зависимости в приложении 2:

  "dependencies": {
    "@react-native-community/cameraroll": "^1.0.5",
    "@react-native-community/netinfo": "^2.0.10",
    "react": "16.8.3",
    "react-native": "0.59.8",
    "react-native-elements": "^1.1.0",
    "react-native-gesture-handler": "^1.2.1",
    "react-native-vector-icons": "^6.4.2",
    "react-navigation": "^3.10.1"
  },
  "devDependencies": {
    "@babel/core": "^7.4.4",
    "@babel/runtime": "^7.4.4",
    "babel-jest": "^24.8.0",
    "jest": "^24.8.0",
    "metro-react-native-babel-preset": "^0.54.1",
    "react-test-renderer": "16.8.3"
  },

Я не получаю никаких сообщений об ошибках, когда это происходит, и на консоли вообще ничего необычного не появляется. Кроме того, кнопки не реагируют, поэтому в приведенном выше примере их нажатие ничего не регистрирует в консоли.

Кто-нибудь еще сталкивался с этим и вам удалось найти причину? Спасибо!

1 Ответ

0 голосов
/ 04 июля 2019

После всего этого я просто случайно нажал горячие клавиши для медленной анимации в симуляторе. Очевидно, что это изменение применяется ко всем симуляторам в XCode, если вы выберете его, поэтому переключение симуляторов не сработало, потому что они оба были частью XCode. Смотрите эти ответы для более подробной информации:

https://stackoverflow.com/a/35116096/9147743

https://stackoverflow.com/a/38189484/9147743

...