React.js-无法访问对象数组中元素的值
我觉得自己像个蹩脚的开发人员,带着这个问题来找你,但我在兜圈子。
我正在使用 React/JS,问题是这样的:
代码通过 ajax
(axios)
从我的个人 API 导入一个
对象数组
。
我的状态期望一个数组:
const [ films, setFilms ] = useState([]);
并接收一个。
事实上,来自我的 API 的 response.result 是一个 包含 20 个电影对象的数组 :
我只想将它作为 props 传递给另一个组件,在该组件中我将使用 存储的对象之一 在数组中来使用和显示它的值,但我无法这样做...到目前为止。
现在,在 React 中,当我测试像这样调用一部电影时:
console.log("films", films);
=>
有效
(显示上面的屏幕截图)
,
console.log("film", films[0]);
=>
有效
(显示第一个元素,一个对象)
,
但如果我尝试输入它
(任何属性)
:
console.log("film", films[0].id);
或
console.log("film", films[0]["id"]);
=>
失败:TypeError:films[0] 未定义
!
我知道我遗漏了一些东西。我收到一个对象数组, 可以 输入一个元素,但 无法 读取其属性...
我感到迷茫... 帮忙? :)
谢谢
可能您的
console.log("films", films);
方法被调用了几次,即使影片尚未加载。当您尝试记录影片时,它将首先记录 null 或空数组,但随后它将显示正确的列表。另一方面,当您使用
console.log("film", films[0].id);
时,您的应用将崩溃,因为它是在影片数组为 null 或空时被调用的。
因此,请确保您的影片数组长度在记录之前大于 0。
尝试使用 && 运算符,如下所示:
console.log("film", films[0] && films[0].id);