我得到以下错误:
可能的未处理promise拒绝(id:0:网络请求失败)
这是promise代码,我看不出有什么问题,有什么想法吗?
return fetch(url)
.then(function(response){
return response.json();
})
.then(function(json){
return {
city: json.name,
temperature: kelvinToF(json.main.temp),
description: _.capitalize(json.weather[0].description)
}
})
.catch(function(error) {
console.log('There has been a problem with your fetch operation: ' + error.message);
});
}
编辑:
我添加了一个catch函数,得到了一个更好的错误:
您传递了一个未定义或空状态对象;相反,使用forceUpdate()。index.ios.js:64未定义的
这是索引。网间网操作系统。js代码。url很好,并为我提供了正确的json数据。我可以通过控制台日志看到这两个区域。纬度和地区。经度
在Api(region.latitude,region.longitude)
中提供。但是数据
未定义。
我仍然不确定发生了什么,为什么data
有问题,为什么它是未定义的。
// var React = require('react-native'); --deprecated
// updated
import React from 'react';
// updated
import {
AppRegistry,
MapView,
View,
Text,
StyleSheet,
} from 'react-native';
/*
var {
AppRegistry,
MapView,
View,
Text,
StyleSheet
} = React;
*/ // -- depreciated
var Api = require('./src/api');
var Weather = React.createClass({
getInitialState: function() {
return {
pin: {
latitude: 0,
longitude: 0
},
city: '',
temperature: '',
description: ''
};
},
render: function() {
return <View style={styles.container}>
<MapView
annotations={[this.state.pin]}
onRegionChangeComplete={this.onRegionChangeComplete}
style={styles.map}>
</MapView>
<View style={styles.textWrapper}>
<Text style={styles.text}>{this.state.city}</Text>
<Text style={styles.text}>{this.state.temperature}</Text>
<Text style={styles.text}>{this.state.description}</Text>
</View>
</View>
},
onRegionChangeComplete: function(region) {
this.setState({
pin: {
longitude: region.longitude,
latitude: region.latitude
}
});
Api(region.latitude, region.longitude)
.then((data) => {
console.log(data);
this.setState(data);
});
}
});
var styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'stretch',
backgroundColor: '#F5FCFF'
},
map: {
flex: 2,
marginTop: 30
},
textWrapper: {
flex: 1,
alignItems: 'center'
},
text: {
fontSize: 30
}
});
AppRegistry.registerComponent('weather', () => Weather);
根据这篇文章,你应该在XCode中启用它。
您应该将catch()添加到Api调用的末尾。当代码命中catch()时,它不会返回任何内容,因此当您尝试对其使用setState()时,数据是未定义的。错误消息实际上也告诉您:)
api中的catch函数应该返回一些可以由React类中的api调用处理的数据,或者抛出新的错误,这些错误应该使用React类代码中的catch函数捕获。后一种方法应类似于:
return fetch(url)
.then(function(response){
return response.json();
})
.then(function(json){
return {
city: json.name,
temperature: kelvinToF(json.main.temp),
description: _.capitalize(json.weather[0].description)
}
})
.catch(function(error) {
console.log('There has been a problem with your fetch operation: ' + error.message);
// ADD THIS THROW error
throw error;
});
然后在你的React类中:
Api(region.latitude, region.longitude)
.then((data) => {
console.log(data);
this.setState(data);
}).catch((error)=>{
console.log("Api call error");
alert(error.message);
});
我在react native中的这个简单api调用有问题,我不知道为什么。我在reactJs上做了完全相同的事情,它在浏览器上运行得非常好。 常量FlatListGames=({导航})= [未处理的promise拒绝:错误:网络错误] node\u modules/axios/lib/core/enhanceError。js:24:11错误。toJSON node_modules/axios/l
我想在Repl上为我的游戏实现一个基本的排行榜。它,所以我创建了一个节点。js后端。这是我在后端的配置: 但是每当我尝试发布时,我都会得到以下错误: (节点:344)未处理的PromisejectionWarning:TypeError:无法读取null的属性“push” (节点:344)UnhandledPromiseRejtionWarning:未处理的promise拒绝。这个错误要么是由于抛
当我运行部署我的应用程序的命令时,我发现以下错误 (节点: 6292)UnhandledPromiseRejtionWarning: UnHandledPromiseRejtionWarning: UnHandledPromiseRejtionWarning: UnHandledPromiseRejtionWarning: UnHandledPromiseRejtionWarning: UnHan
我目前正在创建一个食品订购系统,我正在尝试在一个反应原生项目上建立Firebase 该应用程序允许我使用firebase的身份验证,我可以成功登录并注册新用户,但它不允许我使用firestore我正在尝试在my中的以下代码中进行控制台日志,以查看firestore是否将与该应用程序一起运行 下面是该应用程序的列表。js/我调用firestore集合的屏幕 错误如下所示 Firebase错误//错误
为了学习角度2,我正在尝试他们的教程。 我得到这样的错误: 我在SO中浏览了不同的问题和答案,但没有发现什么是“未处理的promise拒绝”。 有人能简单地解释一下它是什么,以及<code>错误:生成cmd ENOENT</code>是什么,当它出现时,我需要检查什么才能消除这个警告吗?
问题内容: 我有AngularJS的代码: 在AngularJS 1.5.9中,当我在以下部分中出现错误时: 我收到明确的错误消息: TypeError:无法读取null的属性“ y” 但是在具有相同代码的1.6版中,我得到了一个不同的错误: 可能未处理的拒绝:{}未定义 我知道这与此更改有关,并且单个解决方案通过添加block 非常简单: 现在我又有了我想要的东西: TypeError:无法读取