我对“getStaticPaths”函数有疑问。在 getStaticPaths 中未将必需参数 (id) 作为字符串提供
Posted
技术标签:
【中文标题】我对“getStaticPaths”函数有疑问。在 getStaticPaths 中未将必需参数 (id) 作为字符串提供【英文标题】:I have a problem with the 'getStaticPaths' function. A required parameter (id) was not provided as a string in getStaticPaths 【发布时间】:2021-08-26 11:51:39 【问题描述】:我的“getStaticPaths”函数有问题。在 getStaticPaths 中未将必需参数 (id) 作为字符串提供。连我都用过id:users.id.toString()
export default function usersID( users )
return (
<div>
<h1> mobile.name </h1>
</div>
);
export const getStaticPaths = async () =>
const res = await fetch(`http://jsonplaceholder.typicode.com/users`);
const data = await res.json();
const paths = data.map((users) =>
return
params:
id: users.id.toString()
,
;
);
return
paths,
fallback: false,
;
;
export const getStaticProps = async (context) =>
const id = context.params.id;
const res = await fetch(`http://jsonplaceholder.typicode.com/users/$params.id` );
const data = await res.json();
return
props: users: data ,
;
;
【问题讨论】:
您确定定义了users
吗?你退出users.id.toString()
了吗?
是的!我也尝试过使用其他 API,但仍然显示错误!
【参考方案1】:
我没有错误,只是在 getStaticProps 中不是 params.id 而是 id
文件夹结构是
---用户 -----> [id].js
使用 id 2 可从 my_url.example/user/2 访问
//[id].js
import React from "react";
const User = ( users ) =>
console.log(users);
return <div>user</div>;
;
export const getStaticPaths = async () =>
const res = await fetch(`http://jsonplaceholder.typicode.com/users`);
const data = await res.json();
const paths = data.map((users) =>
return
params:
id: users.id.toString(),
,
;
);
return
paths,
fallback: false,
;
;
export const getStaticProps = async (context) =>
const id = context.params.id;
const res = await fetch(`http://jsonplaceholder.typicode.com/users/$id`);
const data = await res.json();
return
props: users: data ,
;
;
export default User;
【讨论】:
以上是关于我对“getStaticPaths”函数有疑问。在 getStaticPaths 中未将必需参数 (id) 作为字符串提供的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Next.js 中设置多语言环境动态页面的 getStaticPaths
错误:动态 SSG 页面需要 getStaticPaths,而“xxx”缺少 getStaticPaths。 NextJS