javascript - 数组 - 为什么即使它们(对我而言)看起来相同,也可以使用一个项目而不是另一个?
问题描述
这有效:
<div className='card'>
<div className='card-inner'>
<div className='card-front'>
<img src={item.images[0].url} alt='Park Image' />
</div>
<div className='card-back'>
<h1>{item.fullName}</h1>
<ul>
<li>
{item.description}
</li>
<li>
</li>
<li>
</li>
<li>
<a href = {item.url}>Park Website</a>
</li>
</ul>
</div>
</div>
</div>
但是,当我添加 {item.entranceFees[0].description}
<div className='card'>
<div className='card-inner'>
<div className='card-front'>
<img src={item.images[0].url} alt='Park Image' />
</div>
<div className='card-back'>
<h1>{item.fullName}</h1>
<ul>
<li>
{item.description}
</li>
<li>
</li>
<li>
{item.entranceFees[0].description}
</li>
<li>
<a href = {item.url}>Park Website</a>
</li>
</ul>
</div>
</div>
</div>
它似乎打破了。Chrome 告诉我“TypeError:无法读取未定义的属性‘描述’” chrome screenshot
我真正感到困惑的是 item.images[0].url 似乎工作正常,我可以从返回的内容中提取图像。
有人可以向我解释一下吗?非常感谢。
解决方案
TypeError: Cannot read property 'description' of undefined
表示item.entranceFees[0]
is undefined
,即item.entranceFees
是一个空数组或没有0
属性的函数/对象。
好消息是我们可以确定item.entranceFees
存在。所以从那里调试。
例如:{(item.entranceFees[0] || {}).description || "Oops, no entrance fees."}
推荐阅读
- android - 为什么我不能将函数的结果绑定到 Android Studio 中的 TextView?
- google-apps-script - 仅当两个目标单元格都被清除时,表格脚本才能清除单元格
- c# - 将对象附加到数组失败单元 tets
- reactjs - 无法模拟输入的更改并使用浅层和安装调用 onChange 函数。酶,jestjs,反应
- google-apps-script - 检查单元格中是否为今天的日期,然后继续
- ubuntu - 如何在 VPS 上设置 Github Actions 配置时克服“不得使用 Sudo”错误
- python - 如何在我的石头剪刀布游戏中添加另一轮
- python - Python如何仅当值后选择的分隔符是数字时才拆分字符串?
- r - 根据数据框列创建多个序列
- rust - 将临时/局部变量传递给 Err