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>
}
添加回答
舉報