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

使用props时React无法渲染,Card组件异常求助

React Card组件无法渲染的解决方案

问题根源

你的代码里ReactDOM.render({cards}, document.getElementById("root"))这一行存在错误——你传入了一个包含cards的普通对象,而非React可识别的JSX元素/元素数组。React无法解析这类对象,导致组件无法渲染。而直接用data[0].img时,是在组件内直接引用数据,绕开了这个render参数的错误,所以能正常显示。

修复代码

把ReactDOM.render的第一个参数改成cards(React 16+支持直接渲染元素数组),或者包裹在一个根元素里(兼容所有React版本):

var data = [{
    id: 1,
    name: "tokyo",
    descr: "a",
    img: "/tokyo.png"
}]

function Card(props) {
    return (
        <div>
            <img src={props.img}/>
            <h1> {props.name}</h1>
            <p> {props.descr}</p>
        </div>
    )
}

const cards = data.map(item => {
    return (
        <Card
            img={item.img}
            name={item.name}
            descr={item.descr}
            key={item.id} />
    )
})

// 修复后的render调用,二选一即可
ReactDOM.render(cards, document.getElementById("root"))
// 或者兼容旧版本的写法:
// ReactDOM.render(<div>{cards}</div>, document.getElementById("root"))

验证逻辑

修改后,React能正确接收cards数组(或包裹后的根元素),逐一渲染每个Card组件,props也能正常传递和使用。

内容的提问来源于stack exchange,提问作者Earl Grey

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 18:25:39