我对“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

我对内联和包含的 Javascript 有疑问

我对 webhook 的定义有疑问

在 NextJS 中使用“getStaticPaths”和“getStaticProps”创建动态路由

我对 laravel 文件上传图片有疑问