0

catchブロックに問題があり、エラーをスローしています。catchブロック:未定義の 'catch'プロパティを読み取ることができません

NetInfo if-elseブロックを追加する前にこのエラーが発生しましたが、そのブロックを追加する前にそのエラーが表示されました。ここ はlogin.js私は間違っ

componentDidMount() { 
const { navigate } = this.props.navigation; 
NetInfo.isConnected.fetch().done((isConnected) => { 
if (isConnected) 
{ 
    return fetch('http://10.42.0.1:8000/stocks/', 
{ 
    method: "GET", 
    headers: { 
    'Authorization': `JWT ${"eyJhbGciOiJIUz1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InNhbSIsInVzZXJfaWQiOjYxLCJlbWFpbCI6IiIsImV4cCI6MTUwNDAzNDUzOX0.d3tbOUS_0L9RzkWA30DT8mv7v7j0XuxnRuI_luhuNzI"}` 
    } 
}) 
    .then((response) => response.json()) 
    .then((responseJson) => { 
    if (!responseJson.post){ 
    navigate("Login"); 
    }else 
    { 
    let ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2}); 
    this.setState({ 
    isLoading: false, 
    sa: ds.cloneWithRows(responseJson.post), 
    }); 
    } 
}) 
}else 
{ 
    navigate("Login"); 
    Alert.alert(
    'Check Internet connection', 
    ) 
} 
}).catch((error) => { 
    console.log(error); 
    }) 
} 

enter image description here

で私のコードですか?助けてください...

答えて

1

.doneを.thenに変更してみてください。

私はまた、そのロジックのいくつかを別々の関数に抽出して、自分で読みやすくすることをお勧めします。すべての中かっこや括弧がたくさんあります!

+0

はい...ありがとう、それは働いた、しかし、なぜそれの背後にある理由はあなたが説明することができますか? –

+0

@mayureshpatil .doneは、チェーン内の最後の要素であることを意味します。ここにそれに関する良い情報があります。 http://exploringjs.com/es6/ch_promises.html#sec_additional-promise-methods – basudz

関連する問題