首页 > 解决方案 > react native Modal前面弹出alert会挂掉ios中的应用

问题描述

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

标签: androidiosiphonereact-native

解决方案


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

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

代码应如下所示:

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

推荐阅读