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

使用React编写代码组件未渲染 预期按钮无显示问题求助

问题原因

你代码里存在2个核心语法错误,直接导致组件没有正常渲染:

  • sounds.map的回调函数用了花括号包裹逻辑,但没有显式返回Pad组件,最终map执行后返回的是全为undefined的数组,自然没有内容渲染
  • audio标签的资源属性配置错误,不存在source属性,需要用src指定音频资源地址

修正后完整代码

const sounds = [
  {
    keyCode: 81,
    keyTrigger: 'Q',
    id: 'Heater-1',
    url: 'https://s3.amazonaws.com/freecodecamp/drums/Heater-1.mp3'
  },
  {
    keyCode: 87,
    keyTrigger: 'W',
    id: 'Heater-2',
    url: 'https://s3.amazonaws.com/freecodecamp/drums/Heater-2.mp3'
  }
];

function App(){
    return (
        <div className="app-div bg-info min-vh-100 text-white">
            <div className="text-center">
                {/* 这里把花括号换成圆括号,隐式返回组件,也可以保留花括号加return语句 */}
                {sounds.map((clip) => (
                    <Pad key={clip.id} clip={clip}/>
                ))}
            </div>
        </div>
    )
}

function Pad({clip}) {
    return (
        <div className="btn btn-secondary p-4 m-3">
            {/* 把source属性换成src */}
            <audio id={clip.keyTrigger} src={clip.url}/>   
            {clip.keyTrigger}
        </div>
    );
}

ReactDOM.render(<App />, document.getElementById('app'))

额外校验点

如果修改后还是有异常,可检查以下配置:

  • 确认codepen的HTML代码中存在id为app的根节点
  • 确认codepen的JS设置中已经添加了React、ReactDOM依赖
  • 若用到了bootstrap样式,确认已经在codepen设置中引入了bootstrap的CSS资源

内容的提问来源于stack exchange,提问作者Pedro Luiz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 11:42:02