TypeError:无法读取未定义的属性“长度”(React,heroku)

Posted

技术标签:

【中文标题】TypeError:无法读取未定义的属性“长度”(React,heroku)【英文标题】:TypeError: Cannot read property 'length' of undefined (React, heroku) 【发布时间】:2021-10-03 01:38:14 【问题描述】:
react_devtools_backend.js:2574 TypeError: Cannot read property 'length' of undefined
    at ra (react-dom.production.min.js:156)
    at ba (react-dom.production.min.js:167)
    at Object.wa [as useEffect] (react-dom.production.min.js:167)
    at Object.t.useEffect (react.production.min.js:22)
    at hn (makeStyles.js:191)
    at p (makeStyles.js:228)
    at withStyles.js:55
    at oa (react-dom.production.min.js:157)
    at La (react-dom.production.min.js:176)
    at Vs (react-dom.production.min.js:271)

如何解决此错误?我使用 react build pack 在 Heroku 上托管了我的 react 应用程序,当我尝试加载一些进行 API 调用的页面时,它显示了该错误,但是当我在本地机器上运行它时,它运行良好。

以下是我认为不会导致错误的代码的 sn-p

 
  !this.props.loading ? this.props.packs && 
  this.props.packs?.length > 0 && this.props.packs?.map((pack) => 
   return <Pack key=pack.id 
  pack=pack onPurchasePackage=this.onPurchasePackage/> ) : null

【问题讨论】:

您好,请先分享代码,以便我们为您提供帮助。第二次尝试在开发工具中调试,看看问题出在哪里 @TalOrlanczyk 感谢您的回复。我不认为错误来自我的代码,从我分享的 sn-p 你会看到它来自“react_devtools_backend.js” api 调用来自本地机器的同一个端点?我的意思是服务器端是同一个端点? @TalOrlanczyk 我不确定我是否正确理解了您的问题。但是前端和后端是不同的端点 我的意思是前端调用相同的后端端点,例如:dev: localhost:3000 staging: localhost:3000 【参考方案1】:

我发现我的代码存在问题。问题在于我放置材料 ui hoc 的方式。

export default connect(mapStateToProps, mapDispatchToProps)(withStyles(useStyles)(withErrorHandler(Packages, axios)));

这是错误的

export default connect(mapStateToProps, mapDispatchToProps)
(withStyles(styles,  withTheme: true )(withErrorHandler(Packages, axios)));

【讨论】:

以上是关于TypeError:无法读取未定义的属性“长度”(React,heroku)的主要内容,如果未能解决你的问题,请参考以下文章

Angular 6 TypeError:无法读取未定义的属性(读取“长度”)错误

TypeError:无法读取未定义的属性“长度”(React,heroku)

jQuery Datatable Uncaught TypeError:无法读取未定义的属性“长度”

未捕获的TypeError:无法读取未定义数据表的属性“长度”

渲染中的 Vue.js 错误:“TypeError:无法读取未定义的属性‘长度’”

如何修复此错误:未捕获(承诺)类型错误:无法读取未定义的属性(读取“长度”)