gpt4 book ai didi

ios - 没有网络连接时 React Native IOS App 崩溃

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:00:12 24 4
gpt4 key购买 nike

在模拟器上它不会崩溃并警告错误,但在生产中它会在假设进行提取请求时崩溃并且在网络连接恢复之前无法重新打开应用程序(我打开/关闭飞机测试模式)

这是我的代码片段

  componentWillMount: function(){
NetInfo.isConnected.addEventListener('change',this.handleConnectivityChange)
NetInfo.isConnected.fetch().done((data) => {

this.setState({
isConnected: data
})
console.log('this.state.isConnected: ', this.state.isConnected);
})
},

handleConnectivityChange: function(){
var connected = this.state.isConnected ? false : true
this.setState({isConnected: connected})
console.log('this.state.isConnected11: ', this.state.isConnected);
},

....

goToList: function(replace, listview){
console.log('this.state.isConnected: ', this.props.isConnected);
if (!this.props.isConnected){
AlertIOS.alert('Error', 'Please check your network connectivity')
this.props.removeFetching()
return
}
....
fetch(url)
.then((response) => response.json())
.then((responseData) => {
....
.catch((error) => {
StatusBarIOS.setNetworkActivityIndicatorVisible(false)
AlertIOS.alert('Error', 'Please check your network connectivity')
this.props.removeFetching()
})
.done()

最佳答案

我花了很多时间试图找到一种在使用 fetch() 时捕获异常的方法,但我无法让它工作(例如,使用 .catch() 或 try/catch 博客不起作用)。起作用的是将 XMLHttpRequest 与 try/catch 博客一起使用,而不是使用 fetch()。这是我基于的示例:https://facebook.github.io/react-native/docs/network.html#using-other-networking-libraries

var request = new XMLHttpRequest();
request.onreadystatechange = (e) => {
if (request.readyState !== 4) {
return;
}

if (request.status === 200) {
console.log('success', request.responseText);
var responseJson = JSON.parse(request.responseText);
// *use responseJson here*
} else {
console.warn('error');
}
};
try {
request.open('GET', 'https://www.example.org/api/something');
request.send();
} catch (error) {
console.error(error);
}

关于ios - 没有网络连接时 React Native IOS App 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37338905/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com