React native Catch块:无法读取属性';捕捉';未定义的
我有问题,捕捉块不工作,并抛出一个错误 当我添加React native Catch块:无法读取属性';捕捉';未定义的,react-native,error-handling,react-native-android,catch-block,React Native,Error Handling,React Native Android,Catch Block,我有问题,捕捉块不工作,并抛出一个错误 当我添加NetInfoif-else块时,出现了这个错误。在添加该块之前,if-else块起作用,但在添加该块之后,显示了该错误。 这是我在login.js中的代码 componentDidMount() { const { navigate } = this.props.navigation; NetInfo.isConnected.fetch().done((isConnected) => { if ( isConnected ) { ret
NetInfo
if-else块时,出现了这个错误。在添加该块之前,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);
})
}
我错在哪里?请帮助…尝试将您的.done更改为.then
我还建议将一些逻辑提取到单独的函数中,以便自己更容易阅读..到处都是大括号和括号 是的。。。非常感谢它起了作用,但为什么会这样?背后的原因是什么?请你解释一下?@mayurespatil.done是你链中的最后一个元素,如果你愿意,这是一个终止声明。这里有一些关于它的好信息。