【发布时间】:2021-04-04 18:45:08
【问题描述】:
我是 React/Next 的新手,在显示 API 返回的数据时遇到了一些困难。
这是数据的结构:
myBooks = {
reading: [
{
title: 'book1',
cover: 'cover1.jpg'
}
],
toRead: [
{
title: 'book2',
cover: 'cover2.jpg'
}
],
read: [
{
title: 'book3',
cover: 'cover3.jpg'
},
{
title: 'book4',
cover: 'cover4.jpg'
}
]
}
这就是我希望数据显示的方式:
阅读:
书1
阅读:
书2
阅读:
书3
书4
我希望这是动态的,所以如果我添加另一个类别,例如“收藏夹”,这些书籍会显示在它们自己的部分中,并带有相关的标题。
这是我尝试使用嵌套的.map 函数呈现这些数据:
{Object.keys(myBooks).map(category => {
<h3>{category}</h3>
category.map(book => (
<p>{book.title}</p>
))
})}
我的理由:
-
.map不能在对象上使用,所以我首先选择对象的键,这就是我所说的category(读取、toRead、读取) - 显示类别后,向下遍历并列出与该类别关联的每本书
我收到的错误:
TypeError: category.map is not a function
提示category不是数组,或者不存在。任何帮助将不胜感激!
【问题讨论】:
-
类别变量将是一个字符串 -
reading, toRead, and read。
标签: javascript reactjs typescript next.js jsx