首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >道具内部的对象(一般道具/javascript问题)

道具内部的对象(一般道具/javascript问题)
EN

Stack Overflow用户
提问于 2022-11-23 07:54:15
回答 1查看 21关注 0票数 0

只是对此有点困惑:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export async function getServerSideProps() {
// Get all homes
const homes = await prisma.home.findMany();
// Pass the data to the Home page
return {
props: {
homes: JSON.parse(JSON.stringify(homes)),
},
};
}

  export default function Home({ homes = [] }) {
  return (
  <div>
  <h1 className="text-xl font-medium text-gray-800">
  Top-rated places to stay
  </h1>
  <p className="he">
  Explore some of the best places in the world
  </p>
  <div className="mt-8">
  <div>{homes} </div>
  </div>
  </div>    
  );

它可以工作,但我认为要访问家庭,您必须执行homes.homes,因为家庭是道具内部的一个对象或属性,道具作为“家”传递给函数,那么如果道具被命名为“homes”,那么实际的homes不应该是其中的一个属性吗?因此,homes.homes能请人解释一下为什么不是这种情况吗?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-23 07:58:46

函数组件的第一个参数是整个props对象。这个道具对象是位于props:右侧的getServerSideProps对象。

在不进行析构的情况下,通过为props对象在getServerSideProps中声明一个额外的变量,可以更容易地可视化。以下代码与当前代码等效。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export async function getServerSideProps() {
    // Get all homes
    const homes = await prisma.home.findMany();
    // Pass the data to the Home page
    const props = { homes: JSON.parse(JSON.stringify(homes)) }
    return {
        props: props,
    };
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export default function Home(props) {
  const homes = props.homes ?? [];
  // ...

getServerSideProps中的props参数之上是与Home中的props参数完全相同的对象。它有一个属性,homes,可以被称为“道具”。该属性看起来是从JSON.parse获取的数组。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74549654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文