2 回答

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超8個(gè)贊
weather
您指定的 的默認(rèn)值是[]
:一個(gè)空數(shù)組。
[].current
將是未定義的,因此會(huì)出現(xiàn)錯(cuò)誤。
要么使用一組更完整的默認(rèn)數(shù)據(jù)。或測(cè)試是否weather.current
具有價(jià)值。

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超7個(gè)贊
您忘記了您的效果是異步的。
在第一個(gè)渲染中,weather將被設(shè)置為[],因?yàn)檫@就是useState設(shè)置它的原因。您將要在稍后完成的效果排隊(duì),然后渲染效果前的元素:
return (
<div>
<h1>hello!</h1>
{console.log(weather.current.temp_c)}
</div>
);
由于weather等于[],weather.current是undefined。undefined.temp_c是一個(gè)TypeError。
放置在獲取數(shù)據(jù)后console.log運(yùn)行的代碼。
添加回答
舉報(bào)