我正在使用本机开发一个文档上传应用程序。 如果网络状况良好,则会上传文档,但是如果网络中断,应用程序突然会崩溃。 例如-如果我在4G网络上上传文档,那么我会从API获得成功,但是如果网络速度突然下降到2G网络(即20KB / S),那么我会收到“网络请求失败/网络错误”,应用崩溃。 / p>
我已经使用catch块处理了错误,但是应用仍然崩溃,即使网络不可用或速度下降,我该怎么做以避免崩溃?
下面是我的代码-
try{
var form = FormData();
form.append("user_id",this.state.userId);
form.append('file', {
uri: this.state.path,
type: 'image/jpg',
name: 'image.jpg',
});
axios({
method:"POST",
url:"http://xxxxx/xxxx",
timeout:50000,
data:form
})
.then(response => console.log(response))
.catch(error=>console.log(error));
}
catch(error){
console.log(error);
ToastAndroid.show("Internal error, please try again");
}
注意-我使用了react-native-image-picker,因为可以使用相机捕获文档,也可以从设备中现有的文件中上传文档。
还已在清单文件中添加了所有权限以用于Internet访问。
请帮助
答案 0 :(得分:0)
那是一个例外。我想你需要抓住例外 BadNetwork或超时您需要捕获它,并且应用程序不应崩溃,只需确保 在“捕获”中,您需要显示“无法连接到服务器”对话框。 或您需要检查是否具有网络连接,然后仅让用户发送请求显示不可取消对话框 希望有帮助。