0

我遇到了无法正常工作并引发错误的 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);
   })
}

在此处输入图像描述

我哪里错了?请帮忙...

4

1 回答 1

1

尝试将您的 .done 更改为 .then。

我还建议将其中的一些逻辑提取到单独的函数中,以使自己更容易阅读......到处都是大括号和括号!

于 2017-08-30T20:30:23.523 回答