gpt4 book ai didi

javascript - TypeError : undefined is not an object , 项目来自 API 的数组

转载 作者:行者123 更新时间:2023-11-30 09:19:27 24 4
gpt4 key购买 nike

export default class LaunchingScreen extends React.Component {

constructor(props) {
super(props);
this.state = {
isLoading: true,
dataSource: null,
refreshing: false
};
}

//When screen is pulled down this calls for fresh through the state its int

_onRefresh = () => {
this.setState({ refreshing: true });
this.componentDidMount().then(() => {
this.setState({ refreshing: false });
});
};
//Gets data from API
componentDidMount() {
return fetch("https://launchlibrary.net/1.4/launch?mode=verbose")
.then(response => response.json())
.then(responseJson => {
this.setState({
isLoading: false,
dataSource: responseJson.launches
});
})
.catch(error => {
console.log(error);
});
}
//Renders Screen
render() {
//Refresh if statement
if (this.state.isLoading) {
return (
<View style={styles.container}>
<ActivityIndicator />
</View>
);
} else {
//Launches is what its called on later to display what is being said in launches
let launches = this.state.dataSource.map((item, key) => {
return (
<View key={key} style={styles.container}>
<View style={styles.subcontainer}>
<Text>{item.missions[0].name}</Text>
</View>
</View>
);
});
//Allows the screen to be scrollable w/ refresh control
return (
<View style={styles.Background}>
<ScrollView
contentContainerStyle={styles.contentContainer}
refreshControl={
<RefreshControl
refreshing={this.state.refreshing}
onRefresh={this._onRefresh}
/>
}
>
{launches}
</ScrollView>
</View>
);
}
}
}

我遇到的问题是从数组中的启动库 API 获取数据(任务名称)。我获取数据并将它们放入项目/键中。当我通过 item.missions[0].name 调用任务名称(missions[0] 是数组)时,我得到一个 TypeError: undefined is not an object。有人告诉我必须检查任务是否未定义,但我不明白解决方案。

最佳答案

假设您有一个数组并且它实际上包含值,您正试图获取数组的索引 (0)。

您可以这样检查并确保:

<Text>
{Array.isArray(item.missions) && item.missions.length && item.missions[0].name}
</Text>

这将检查该值是否实际上是一个长度大于 0 的数组,以便您可以访问 0 索引。

关于javascript - TypeError : undefined is not an object , 项目来自 API 的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52681949/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com