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

React开发AuthorQuiz应用遇TypeError: author is undefined错误求助

解决React AuthorQuiz中Turn组件的TypeError: author is undefined问题

我来帮你定位并修复这个错误,问题出在AuthorQuiz组件接收props的方式上,具体原因和修复步骤如下:

错误根源

React组件的第一个参数是完整的props对象,而不是你直接传入的某个属性。在你的代码里:

  • index.js中通过<AuthorQuiz {...state}/>把state对象展开传递,此时state里的turnData会成为AuthorQuiz组件props的一个属性(即props.turnData)
  • 但你写的function AuthorQuiz(turnData)是把整个props对象当成了turnData,这就导致你传给Turn组件的{...turnData}其实是展开了props对象(里面并没有author和books),最终Turn组件拿不到正确的author参数,触发undefined错误。

修复方案

修改AuthorQuiz组件的参数写法,正确从props中解构出turnData:

修改后的AuthorQuiz.js代码

function Turn({ author, books }) { 
  return ( 
    <div className="row turn" style={{ backgroundColor: 'white' }}> 
      <div className="col-4 offset-1"> 
        <img src={author.imageUrl} className="authorImage" alt="Author" /> 
      </div> 
      <div className="col-6"> 
        {/* 给列表项添加key,避免React警告 */}
        {books.map((title, index) => <p key={index}>{title}</p>)} 
      </div> 
    </div>
  ); 
}

// 从props中解构出turnData属性
function AuthorQuiz({ turnData }) { 
  return ( 
    <div className="container-fluid"> 
      <Hero/> 
      <Turn {...turnData}/> 
      <Continue/> 
      <Footer/> 
    </div> 
  ); 
}

额外优化提示

在books.map的时候记得添加key属性(如上代码所示),这是React列表渲染的规范要求,能避免控制台出现不必要的警告。

内容的提问来源于stack exchange,提问作者rabar sdiq

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:30:03