【发布时间】:2021-10-04 10:52:20
【问题描述】:
目前正在使用一些已解析的 json 映射出一些模板卡,但我注意到我没有在 .map 方法中正确返回/访问从我的 fetch 调用返回的数据。
这是json数据的sn-p:
const dataArr = [
{
id: 1,
name: "Leanne Graham",
username: "Bret",
email: "Sincere@april.biz",
address: {
street: "Kulas Light",
suite: "Apt. 556",
city: "Gwenborough",
zipcode: "92998-3874",
geo: {
lat: "-37.3159",
lng: "81.1496"
}
},
phone: "1-770-736-8031 x56442",
website: "hildegard.org",
company: {
name: "Romaguera-Crona",
catchPhrase: "Multi-layered client-server neural-net",
bs: "harness real-time e-markets"
}
},
{
id: 2,
name: "Ervin Howell",
username: "Antonette",
email: "Shanna@melissa.tv",
address: {
street: "Victor Plains",
suite: "Suite 879",
city: "Wisokyburgh",
zipcode: "90566-7771",
geo: {
lat: "-43.9509",
lng: "-34.4618"
}
},
phone: "010-692-6593 x09125",
website: "anastasia.net",
company: {
name: "Deckow-Crist",
catchPhrase: "Proactive didactic contingency",
bs: "synergize scalable supply-chains"
}
},
我正在尝试将其与以下模板一起使用:
const renderUser = (user, index) => {
return(
<div className="user-card" key={"user-" + index}>
<header>
<h2>{user.name}</h2>
</header>
<section className="company-info">
<p><b>Contact:</b>{user.email}</p>
<p><b>Works for:</b>{user.company}</p>
<p><b>Company creed:</b>{user.company}</p>
</section>
<footer>
<button className="load-posts">POSTS BY {user.username}</button>
<button className="load-albums">ALBUMS BY {user.username}</button>
</footer>
</div>
)
};
目前我已经尝试过:
dataArr.map(renderUser);
虽然无济于事。
我可能哪里出错了?
提前感谢您的帮助 - 至少在此问题上停留了 10 个小时 ????enter image description here
【问题讨论】:
-
“但我注意到我没有返回/访问...”您是如何注意到的?你怎么知道它不起作用?实际的渲染代码在哪里?
-
@DennisVash 因此可以在以下端点访问原始 json:link italic bold 至于确认,我收到以下信息尝试使用发布的 sn-p 运行时出错:
Error: Objects are not valid as a React child (found: object with keys {name, catchPhrase, bs}). If you meant to render a collection of children, use an array instead.我尝试了一个普通的 .map,只渲染一层嵌套对象,例如[{},{}]。这样就可以了
标签: arrays json reactjs javascript-objects