javascript - 得到错误 next.js TypeError: users.map is not a function
问题描述
我正在尝试使用 getStaticProps 获取数据,但是每次弹出这个东西并且无法获取数据时,错误:TypeError:users.map is not a function 我卡在这段代码中请帮助我提前感谢。
import Link from 'next/link'
import styles from '../styles/Users.module.css'
export async function getStaticProps() {
const res = await fetch("https://reqres.in/api/users?page=2")
const data = await res.json()
return {
props : { users: data}
}
}
const Users = ({users}) => {
return (
<div>
<h1 className={styles.use}>All Users</h1>
{users.map(user =>(
<div>
<Link href={'/users/' +user.id} key={user.id}>
<a className = {styles.single}>
<h3>{user.email}</h3>
</a>
</Link>
</div>
))}
</div>
);
}
export default Users;
解决方案
检查https://reqres.in/api/users?page=2 API,它返回例如:
{
page: 2,
per_page: 6,
total: 12,
total_pages: 2,
data: [
//... the user data
]
}
因此,如果您只想访问用户,那么您应该更改
props : { users: data}
到props: { users: data.data }
.
或者因为data.data
有点傻,也许只是从 API 的结果中解构 data 属性:const { data }= await res.json()
.
推荐阅读
- javascript - 如何实现类似节流阀的功能,但又不会浪费调用之间的时间
- java - 2 个非嵌套不同循环方法的大 O 表示法的时间复杂度
- azure - Azure AD B2C 中 Auth0 连接的等效项
- javascript - 找不到模块:安装 React Native Gesture Handler 时无法解析“@egjs/hammerjs”
- jquery - 使用 jQuery 动画对象。如何在 HTML 中使用淡入、动画和淡出三种技术
- azure - 应用程序 xxx 请求资源 xxx 上不存在的范围 Device.ReadWrite.All。联系供应商
- flutter - 如何返回10公里以下的距离颤振
- php - Laravel Raw 查询转换为 Eloquent ORM 格式
- python-3.x - 重复的日志 Flask - Google Cloud Logging
- c# - 如何按多个百分比调整此评估函数