开发者问题收集

React.js-无法访问对象数组中元素的值

2020-03-09
1039

我觉得自己像个蹩脚的开发人员,带着这个问题来找你,但我在兜圈子。

我正在使用 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] 未定义

我知道我遗漏了一些东西。我收到一个对象数组, 可以 输入一个元素,但 无法 读取其属性...

我感到迷茫... 帮忙? :)
谢谢

2个回答

可能您的 console.log("films", films); 方法被调用了几次,即使影片尚未加载。当您尝试记录影片时,它将首先记录 null 或空数组,但随后它将显示正确的列表。另一方面,当您使用 console.log("film", films[0].id); 时,您的应用将崩溃,因为它是在影片数组为 null 或空时被调用的。

因此,请确保您的影片数组长度在记录之前大于 0。

Burak Gavas
2020-03-09

尝试使用 && 运算符,如下所示:

console.log("film", films[0] && films[0].id);
Baha
2020-03-09