我无法从状态、带有功能组件的 ReactJS 渲染和对象
2021-05-21
68
使用此功能,我从 API 中过滤了一些对象
const consultarAPI = async () => {
try {
const consulta = await fetch(URL);
const respuesta = await consulta.json();
// Aqui se filtran las noticias
const noticiasFiltradas = respuesta.filter(
(noticia) => noticia.categoria === categoria
);
setNoticias(noticiasFiltradas);
setDestacada(noticiasFiltradas[noticiasFiltradas.lenght-1])
} catch (error) {
console.log(error);
}
};
我不知道哪里出了问题。状态“noticias”接收对象数组,而“destacada”接收数组的最后一个对象。
在应用程序上,我的组件的状态完全符合我的预期。但是,如果我这样做
<h4>{destacada.titulo}</h4>
因为我需要呈现该特定对象的标题。应用程序崩溃,我收到此错误。 TypeError:无法读取未定义的属性“titulo”
它怎么会未定义 ?在我尝试呈现对象之前的几秒钟,它运行正常。请帮我。 这些是我的状态:
const [destacada, setDestacada]=useState({});
const [noticias, setNoticias] = useState([]);
const [categoria, setCategoria] = useState("");
2个回答
此处您有拼写错误
setDestacada(noticiasFiltradas[noticiasFiltradas.lenght-1])
这就是
destacada
未定义的原因。
因此,将
noticiasFiltradas.lenght-1
更改为
noticiasFiltradas.length-1
Zhang TianYu
2021-05-21
我已经解决了这个问题。不要写
<h4>{destacada.titulo}</h4>
,而是写
<h4>{destacada && destacada.titulo}</h4>
Goyi
2021-05-22