3 回答

TA贡献1799条经验 获得超9个赞
好吧,在你做任何事情之前先验证一下。
因此,请验证是否this.state.Pods存在以及this.state.Pods[0]是否存在。
话虽如此,直接访问一个索引然后只使用那个索引,这就引出了一个问题,你为什么需要一个数组?
因此,您可以先验证是否this.state.hasError为真,然后返回错误消息,如果不为真,并且您还没有 Pod,则返回 null,否则返回您的实际渲染,例如:
render() {
const { hasError, Pods = [] } = this.state;
if (hasError) {
return <div>Error occured</div>;
}
if (Array.isArray(Pods) || !Pods[0]) {
return null;
}
return <Text>{Pods[0].Name}</Text>;
}
当状态更新时,您的组件将重新渲染并再次检查所有条件,给您一个错误,再次为空(如果 Pods 尚不存在或不是您期望的那样),或者它将渲染您的文本元素

TA贡献1946条经验 获得超3个赞
请使用这个
render() {
if (!this.state.Pods || !this.state.Pods[0] ) {
return <Text>Loading</Text>
}
添加回答
举报