如何在next js中访问getServersideProps函数中的变量[已关闭]

rdrgkggo  于 2023-02-12  发布在  其他
关注(0)|答案(1)|浏览(72)

**已关闭。**此问题需要debugging details。当前不接受答案。

编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
2天前关闭。
Improve this question
我有一个页面是使用下一个js的动态网址形成的,但是我一直发现很难访问的id是在exmaple的网址http://localhost:3000/comfort/63 d9948 e68 fc2 c27939 fcc 41我想访问的id是63 d9948 e68 fc2 c27939 fcc 41,因为这个chnage动态地基于用户点击
使用router.query,我能够动态地获得url,上面的代码被放置在默认函数中,即加载并替换页面的函数中。我无法在我的getServerSideProps函数中获得此变量,我无法使用或访问它。我理解变量id包含在呈现页面的函数的作用域函数中,因此,我decalred了一个名为px 1 m0n1x的函数,然后我尝试更新呈现页面的默认函数中的p,但当我控制台将p记录在默认函数之外时,它返回为未定义。
我该如何解决这个问题这里是代码更清楚地理解

我尝试解构router. query以取出id变量,然后尝试在外部声明一个变量,以便可以在getserversideprops中使用它,但它返回undefined

yacmzcpb

yacmzcpb1#

我猜您也在使用数据库,因此这些编号应该存储在那里的某个地方,并且在构建动态/嵌套路由时,您应该预先存储这些ID作为选项,以便客户端能够导航到它们,我将为您提供从旧项目中截取的基本代码,希望对您有所帮助

const Posts= (props: { posts: IBlogPost[] }) => {
  let postsData: Array<IPostsData> = props.posts;
 return (
<>
{postsData.map((post)=>{
   (<Link><a href={post.url}>{post.title}</a></Link>)
  }
}
</>
)

export async function getServerSideProps() {
  const client = await clientPromise; //clientPromise comming from mongo library
  const db = client.db('blog');
  const AllPosts = await db.collection('blog').find({}).toArray();
  const posts = await JSON.parse(JSON.stringify(AllPosts));
  return {
    props: {
      posts,
    }
  };
}

相关问题