如何防止在 ios 上冻结 react-native 应用程序?
How to keep alert from freezing react-native app on ios?
我在 IOS 上的所有 react-native 应用程序最近都停止了警报。除了更新依赖项之外,我没有做任何更改。他们在 android 上仍然可以正常工作。具体来说,警报弹出,但随后警报框上分隔按钮的栏随机闪烁,一切都冻结了。大约在同一时间,我还必须针对 Picker 在 android 上的行为方式更新我所有的本机反应应用程序的代码。也许这是巧合,或者可能是由同一个更新引起的?我同时更新了我的所有依赖项,所以如果那是问题,我不确定是哪一个。
发生这种情况:
不管页面上有没有模态组件
无论我使用的是 javascript 警报、来自 react-native 的 Alert 组件,还是来自 react-native 的 AlertIOS 组件。
这只是我在测试页面上使用的官方 react-native 文档的复制和粘贴:
// 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},
);
App 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"
},
App 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"
},
发生这种情况时我没有收到任何错误消息,控制台上也没有出现任何异常。此外,按钮没有响应,因此在上面的示例中单击它们不会向控制台记录任何内容。
有其他人 运行 参与其中吗?您能找到原因吗?谢谢!
毕竟,我只是不小心按下了模拟器中慢速动画的热键。显然,如果您 select 它,此更改适用于 XCode 中的所有模拟器,因此切换模拟器不起作用,因为它们都是 XCode 的一部分。有关详细信息,请参阅这些答案:
我在 IOS 上的所有 react-native 应用程序最近都停止了警报。除了更新依赖项之外,我没有做任何更改。他们在 android 上仍然可以正常工作。具体来说,警报弹出,但随后警报框上分隔按钮的栏随机闪烁,一切都冻结了。大约在同一时间,我还必须针对 Picker 在 android 上的行为方式更新我所有的本机反应应用程序的代码。也许这是巧合,或者可能是由同一个更新引起的?我同时更新了我的所有依赖项,所以如果那是问题,我不确定是哪一个。
发生这种情况:
不管页面上有没有模态组件
无论我使用的是 javascript 警报、来自 react-native 的 Alert 组件,还是来自 react-native 的 AlertIOS 组件。
这只是我在测试页面上使用的官方 react-native 文档的复制和粘贴:
// 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},
);
App 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"
},
App 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"
},
发生这种情况时我没有收到任何错误消息,控制台上也没有出现任何异常。此外,按钮没有响应,因此在上面的示例中单击它们不会向控制台记录任何内容。
有其他人 运行 参与其中吗?您能找到原因吗?谢谢!
毕竟,我只是不小心按下了模拟器中慢速动画的热键。显然,如果您 select 它,此更改适用于 XCode 中的所有模拟器,因此切换模拟器不起作用,因为它们都是 XCode 的一部分。有关详细信息,请参阅这些答案: