React Native TypeError问题咨询:访问API数据深层属性报错
解决React初始渲染时访问异步数据子属性报错的问题
问题原因
初始渲染阶段,data状态还未通过异步请求获取到数据,此时data为undefined(若未设置初始值)。直接访问data.TCMB_AnlikKurBilgileri[0].Isim相当于在undefined上读取嵌套属性,必然触发类型错误。而热重载时,之前的请求已完成,data已存储了API返回的数据,所以能正常访问。
解决方案
给状态设置初始默认值
初始化data时,提供一个匹配API返回结构的空值,避免初始阶段属性不存在:const [data, setData] = useState({ TCMB_AnlikKurBilgileri: [] });使用可选链操作符安全访问
通过?.操作符跳过中间值为undefined/null的情况,避免报错:console.log(data?.TCMB_AnlikKurBilgileri?.[0]?.Isim);添加条件判断后再访问
确认数据已加载完成后,再执行属性访问:if (data?.TCMB_AnlikKurBilgileri?.length) { console.log(data.TCMB_AnlikKurBilgileri[0].Isim); }监听状态变化执行操作
若需要在数据更新时自动打印,可新增监听data的useEffect:useEffect(() => { if (data?.TCMB_AnlikKurBilgileri?.length) { console.log(data.TCMB_AnlikKurBilgileri[0].Isim); } }, [data]);
内容的提问来源于stack exchange,提问作者n00b
相关产品推荐
相关产品推荐

