我有以下代码:
export default class HomeScreen extends Component {
state = {text: ''};
_onPressSearch() {
Alert.alert("Button pressed!")
}
function getCitiesListFromApiAsync() {
return fetch("https://samples.openweathermap.org/data/2.5/find?lat=55.5&lon=37.5&cnt=10&appid=b6907d289e10d714a6e88b30761fae22.json")
.then((response) => response.json())
.then((responseJson) => {
return responseJson.list;
})
.catch((error) => {
Alert.alert("Error while loading: " + error);
})
}
render() {
return (<View style={styles.container}>
<ScrollView style={styles.scrollViewContainer} contentContainerStyle={styles.contentContainer}>
<View style={styles.searchContainer}>
<TextInput placeHolder="Type something!" onChangeText={(text) => this.setState({text})}
value={this.state.text}/>
</View>
<TouchableOpacity
onPress={this._onPressSearch}>
<View>
<Text>Search</Text>
</View>
</TouchableOpacity>
<View style={styles.container}>
<FlatList
data={this.getCitiesListFromApiAsync()}
renderItem={({item}) => <Text style={styles.item}>{item.name}</Text>}
/>
</View>
</ScrollView>
</View>);
}
}
现在,我正尝试从服务器获取数据,将其解析并将其添加到列表中。我从以下API获取数据:https://samples.openweathermap.org/data/2.5/find?lat=55.5&lon=37.5&cnt=10&appid=b6907d289e10d714a6e88b30761fae22.json。我为此创建了一个特殊功能,与tutorial中的功能相同。但是我的IDE(Webstorm)将其标记为红色,并写上function
名称后应该有换行符或分号,并且在运行应用程序时出现以下错误:
无法构建JavaScript捆绑包。 语法错误:/Users/siarhei.mikhaylouski/WebstormProjects/WeatherApp/screens/HomeScreen.js:意外令牌(23:13)
function getCitiesListFromApiAsync() {
| ^
24 | return fetch("https://samples.openweathermap.org/data/2.5/find?lat=55.5&lon=37.5&cnt=10&appid=b6907d289e10d714a6e88b30761fae22.json")
25 | .then((response) => response.json())
26 | .then((responseJson) => {
怎么了,我该怎么解决?
答案 0 :(得分:1)
在类中定义方法时,请勿使用function
关键字。
只需写:
getCitiesListFromApiAsync() {
// [...]
}