我正在为React使用一个可重用的组件,我试图在数组对象中映射数组,以进入这个组件. 数据看起来像:


export const portfolioData = [
  {
    title: "Drum Kit",
    url: "some url",
    codeUrl: "some github repo",
    mobileFriendly: false,
    img: "some img",
    techUsed: ["React", "APIs", "Custom Hooks"],
  },
];

该 map 如下所示:

<div>
               {portfolioData.map((portfolio,i)=>(<PortfolioCard key={i}>{portfolio}</PortfolioCard> ))}
            </div>

并且可重用组件如下所示:

 <div>
            <img src={img} />
            <h3>{title}</h3>
            <button target="_blank" href={url}><FaCode />
            </button>
            <button target="_blank" href={codeUrl}><CgWebsite />

            </button>
            <ul>
                <li>{mobileFriendly}</li>
                <li>{techUsed}</li>
            </ul>

        </div>

当我使用.map()时,它会识别出我已经映射了something多个,但它没有在屏幕上显示任何内容,只显示了三个空组件(我的数组中有三个对象).

推荐答案

如果要将对象中的属性值用作props ,可以将它们扩散到组件中.

{portfolioData.map((portfolio,i) => <PortfolioCard {...portfolio} key={i} />)}

Reactjs相关问答推荐

有正确的方法来设置我的金牛座应用程序的图标吗?

在迁移到Redux—Toolkit 2.0和Redux5.0之后,我在extraReducer和Slice方面有点挣扎,

在react中向数组状态添加值时出错

无法使用Apollo客户端GraphQL设置Next.js 14

安装后未渲染tailwind

react 下拉菜单任务

Reaction Ploly:如何在多个子情节中共享zoom 状态

如何从react 18-nextjs 14应用程序路由中的客户端组件呈现服务器组件?

当项目开始时,它不会从三元运算符(REACT)加载一些tailwind 类名称

Github 操作失败:发布 NPM 包

使用jest如何覆盖对象的模拟?我正在使用`jest.mock()`来模拟对象,并希望 for each 测试用例覆盖模拟.

如何在next.js 13中仅在主页导航栏上隐藏组件?

如何在 ReactJS 中提交后删除 URL 中的查询参数

为什么 setState 在 React 中不是异步的?

React + i18next + Trans + Prettier:Prettier 最终会在重新格式化 JSX 时 destruct 翻译

SonarCloud 代码覆盖率不适用于 Github Action

如果 URL 已随功能组件更改,则取消刷新

NextJs - 如何从站点 map 生成器中删除重复的 URL?

React Hooks 表单在日志(log)中显示未定义的用户名

在 redux 状态更改时更新react 按钮禁用状态