无法读取 null 的属性“ ”
2020-01-28
768
我尝试从 API 访问一些数据,但当我这样做时,我得到了“无法读取 null 的属性‘5’”
import React from "react";
function Card(props) {
console.log(props.data[5].mission_name); //why is it that this doesn't work in my machine?
console.log(props.data); //this works with my machine
return (
<div>
<h1>test</h1>
</div>
);
}
export default Card;
我最初将传递的数据设置为 null,然后在 API 中的数据加载后更新它,所以我认为这可能是问题的一部分,但我不知道如何解决它。我创建了一个代码沙箱以获取更多上下文。作为参考,我正在使用 spacex api。
https://codesandbox.io/embed/gallant-mcnulty-lyied?fontsize=14&hidenavigation=1&theme=dark
提前致谢。
2个回答
正如您所说,您最初将数据值设置为 null。当 Card 最初呈现时,它会尝试在 null 上索引 5 并给出该错误。尝试类似
if (props.data) { // the first render (where data is null) will skip this block
console.log(props.data[5].mission_name);
}
Jason
2020-01-28
因为有时您的函数在数据为空时被调用。
因此,您必须在访问该数据的元素之前进行检查:
console.log(props.data && props.data[5].mission_name);
Mickael B.
2020-01-28