【发布时间】:2021-02-09 09:31:39
【问题描述】:
我正在尝试映射对象数组并将链接属性作为<li></li> 返回,但由于某种原因没有返回任何内容:
import { useState, useEffect } from "react";
import { Config } from "../../config";
export default function Navbar() {
const [navs, setNavs] = useState();
const [mainNav, setMainNav] = useState();
const [links, setLinks] = useState();
useEffect(async () => {
const res = await fetch(`${Config.apiUrl}/navs`);
const data = await res.json();
setNavs(data);
// !!navs && setMainNav(navs.map((x) => (x.name === "main-nav" ? x : null)));
}, []);
useEffect(() => {
!!navs && setMainNav(navs.map((x) => (x.name === "main-nav" ? x : null)));
!!mainNav && setLinks(mainNav.map((item) => item.link));
}, [navs]);
!!links && console.log(links);
return (
<nav>
<ul>{!!links && links.map((item) => <li>{item.link}</li>)}</ul>
</nav>
);
}
console.log(links) 的结果显示如下输出:
[
{
_id: "5f975d6d7484be510af56903", link: "home", url: "/", __v: 0, id: "5f975d6d7484be510af56903"
},
{
_id: "5f975d6d7484be510af56904", link: "posts", url: "/posts", __v: 0, id: "5f975d6d7484be510af56904"
},
]
我不明白为什么我可以通过item.link 访问link 属性。
附:这开始看起来太不优雅了,还有其他人知道我该如何清理它吗?
【问题讨论】:
-
你能分享你得到的“数据”,即 api 调用的结果吗?
-
您能否通过控制台记录您的
data并在此处添加。这将有助于我们调试问题。
标签: javascript json reactjs next.js