2016-05-20 22 views
2

シミュレータ上でクラッシュしないでエラーを警告しますが、プロダクションではフェッチ要求が発生するとすぐにクラッシュし、ネットワーク接続までアプリケーションを開くことはできません帰ってきたここネイティブIOSアプリケーションがネットワークに接続されていないとクラッシュする

は私がフェッチ使用している場合、例外をキャッチする方法を見つけるためにしようと多くの時間を費やし

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() 

答えて

0

私のコードのスニペットです(私はテストのためにオン/オフ機内モードをオンに)(私はそれを働かせることができませんでした(例えば、.catch()を使うかtry/catchブログがうまくいきませんでした)。 XMLHttpRequestをfetch()の代わりにtry/catchブログで使用することができました。ここに私が基づいている例があります: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); 
} 
関連する問題