Ich erhalte die folgende Fehlermeldung: Possible unhandled promise rejection (id:0: Network request failed
Hier ist der Versprechen-Code, ich sehe nicht, was hier falsch ist, irgendwelche Ideen?
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);
});
}
** Bearbeiten: Ich habe eine Fangfunktion hinzugefügt und einen besseren Fehler erhalten You passed an undefined or null state object; instead, use forceUpdate(). index.ios.js:64 undefined
Hier ist der index.ios.js Code. Die URL ist in Ordnung und gibt mir die richtigen JSON-Daten. Ich kann mit dem Konsolenprotokoll sehen, dass beide region.latitudeund region.longitudein verfügbar sind Api(region.latitude, region.longitude). Ist dataaber undefiniert. Ich bin mir immer noch nicht sicher, was los ist, warum es ein Problem gibt dataund warum es undefiniert ist.
// 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);

.catch()auch hinzu und prüfen Sie, ob der Fehler verschwindet. Referenz: facebook.github.io/react-native/docs/…