那些ReactNative的坑

本文记录了一个ReactNative App在特定设备上使用Alert时遇到的崩溃问题及其解决方案。问题表现为在iPhone5s上输入凭证时程序崩溃,但在其他设备及模拟器上正常。通过调试发现错误源于传递给Alert的对象而非字符串,最终通过简单的字符串转换解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天中午测试的时候,发现一个问题。

一个ReactNative的App,跑在iPhone5s上,输入用户名、密码,程序崩溃,提示“ Invalid data message - all must be length: 8 ”。

但问题在于,在别人的手机上跑,以及在模拟器上跑,都没有问题,让我一度怀疑手里的iPhone5s是不是坏了。。。

找了一中午原因都没找到,最后求助大腿鑫,大腿鑫通过注掉代码,一遍一遍的尝试下,终于发现问题出在Alert上。


先来贴那段有问题的Alert,原先是这么写的:

Alert.alert("提示", error, [{
    text: '确定', onPress: () => {}
}])


然后我们把它换成这样试了一下,发现它不崩了:

alert(error)


然后问题就来了,它弹出一个提示,"Network request failed",然后我们定睛一看,原来是手机的wifi和流量都关了,坑爹啊!!!

再把wifi打开,发现它好使了。

我们回过头来再说那个Alert的问题,它崩溃是因为抛出的error是一个object,不是一个单纯的字符串。

所以归根结底,还是代码有问题。然后我们把它改成这样:

Alert.alert("提示", error+'', [{
     text: '确定', onPress: () => {}
}])
就是在原先的基础上+' ',转换成字符串,就OK了。( 作为从iOS转过来的菜鸟吐槽一句,这转换字符串的语句真够精炼的!)


然后我们觉得如果每个地方都这么改,要费很多时间,然后大腿鑫就在底层封装的方法里,把这个方法给改了,然后问题就圆满解决了!!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值