react native Modal前面弹出alert会挂掉ios中的应用

Posted

技术标签:

【中文标题】react native Modal前面弹出alert会挂掉ios中的应用【英文标题】:Popping up a alert in front of react native Modal hangs up the application in ios 【发布时间】:2019-05-01 04:55:33 【问题描述】:

我正在尝试制作一些身份验证系统,在该系统中单击注册后会要求用户输入 otp。我使用模态标签为 Otp 制作了一个模态,只有当某个值变为真时才可见。每当用户提交 otp 时,我都会打开一个警告框,提示现在登录并将该模式​​可见性更改为 false。 但是在这样做时,我在 ios 中遇到了一个问题。这在 android 中运行良好,但在尝试使用 ios 设备时,手机在模态屏幕上挂断并且不会返回。

【问题讨论】:

【参考方案1】:

所以这是模态和警报的一个众所周知的问题,因为alert 本身是模态(覆盖项)的一种形式,而setState 是异步发生的,因此动作会相互阻塞,整个用户体验都会挂起。您需要做的只是同步 OTP 模态关闭和警报。

已编辑:最好使用setTimeOut(()=>Alert.alert(), 0);为您的警报添加超时

代码应该是这样的:

this.setState(
  isOTPModalVisible: false
, () => 
   Alert.alert('message');
)

【讨论】:

以上是关于react native Modal前面弹出alert会挂掉ios中的应用的主要内容,如果未能解决你的问题,请参考以下文章

React Native Web 中 Modal 的替代方案

如何让应用程序关闭时出现 Alert / Modal / Dialog 服务 react native?

RN-第三方之react-native-root-modal、或者modal实现侧栏效果

React Native + react-native-router-flux:<Scene key='modal' component=Modal/> 有啥作用?

如何使 Modal 在 react-native 中显示为不同的组件

react-native-modal 内的导航