× TypeError:无法读取 null 的属性(读取“map”)
2021-12-07
19388
我不明白为什么会出现此错误 TypeError: 无法读取 null 的属性(读取“map”) ,这是一个非常简单的功能。我希望有人能帮助我。
这是我的代码,我无法从 API 请求映射对象。 为了保护隐私,我修改了 API 请求的密钥。
import { useEffect, useState } from "react";
export default function Featured() {
const [featured, setFeatured] = useState(null);
useEffect(() => {
fetch('https://api.rawg.io/api/games?dates=2021-01-01,2021-12-31&ordering=-rating&key=1234')
.then(response => response.json())
.then(data => {
console.log(data.results.slice(0, 4));
setFeatured(data.results.slice(0, 4));
});
}, []);
return (
<div className="container mt-5">
<div className="row">
{featured.map((el) => {
return (
<div>{el.name}</div>
)
})}
</div>
</div>
);
}
2个回答
您的问题是因为您将数据以
null
开始。在 api 有机会返回之前的初始渲染中,您的
featured
数组实际上是 null,并且您无法对 null 调用
.map
。相反,您可以将数据以空数组的形式开始,如下所示
const [featured, setFeatured] = useState([]);
或者,您可以在渲染中进行检查,以确保它不再是
null
,api 返回响应后就会出现这种情况。
Chaim Friedman
2021-12-07
{featured &&
featured.map((el) => {
return (
<div>{el.name}</div>
)
})}
CottonWolf
2022-10-12