You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将对象传递给组件后再赋值给Next.js Image组件的src属性

问题根源

你在index.js中传递icon参数时多套了一层对象:{myIcon}是对象简写语法,等价于{myIcon: myIcon},因此你传递到TripleCard组件的cardData.icon实际是一个包含myIcon属性的对象,而非图片资源本身,所以next/image识别不到合法的src值。

修复方案

方案一(推荐,简化参数结构)

修改index.js的传参逻辑,去掉icon外层的多余花括号,同时给next/image补充必填的alt属性避免后续报错:

// index.js 修正后代码
import myIcon from '../public/icon.png' 
import TripleCard from './tripleCard'

<TripleCard cardData={{ icon: myIcon, size: "100px" }}></TripleCard>
// tripleCard.js 修正后代码
import Image from 'next/image'

export default function TripleCard({ cardData }) {
    return(
        <Image 
          src={cardData.icon} 
          height={cardData.size}
          alt="图标" // 可替换为对应业务含义的文本
        />
    )
}

方案二(适配嵌套对象结构)

如果你确实需要保留当前嵌套对象的传参结构,直接修改tripleCard.js的src取值逻辑即可:

// tripleCard.js 适配嵌套结构的代码
import Image from 'next/image'

export default function TripleCard({ cardData }) {
    return(
        <Image 
          src={cardData.icon.myIcon} 
          height={cardData.size}
          alt="图标"
        />
    )
}

内容的提问来源于stack exchange,提问作者engineer-x

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 04:27:03