未捕获(在承诺中):TypeError:无法读取未定义的属性“长度”
2020-12-04
8607
我正在使用 angular ionic 3,当我点击某个按钮时出现此错误,有人可以帮我确定吗?
realestateproductdetails.ts
if (localStorage.getItem('agentdetail')) {
this.agentdetail = JSON.parse(localStorage.getItem('agentdetail'));
for (let i = 0; i < this.agentdetail.branchDetails.length; i++) {
this.branchCodeArray[i] = this.agentdetail.branchDetails[i].branchCode
}
从“for”开始的第 3 行是第 66 行
错误
Runtime Error
ERROR Error: Uncaught (in promise): TypeError: Cannot read property 'length' of undefined
TypeError: Cannot read property 'length' of undefined
at new RealestateproductdetailsPage (realestateproductdetails.ts:66)
at createClass (core.js:12491)
at createDirectiveInstance (core.js:12326)
at createViewNodes (core.js:13784)
at createRootView (core.js:13673)
at callWithDebugContext (core.js:15098)
at Object.debugCreateRootView [as createRootView] (core.js:14381)
at ComponentFactory_.create (core.js:11278)
at ComponentFactoryBoundToModule.create (core.js:4030)
at NavControllerBase._viewInit (nav-controller-base.js:441)
at c (polyfills.js:3)
at Object.reject (polyfills.js:3)
at NavControllerBase._fireError (nav-controller-base.js:223)
at NavControllerBase._failed (nav-controller-base.js:216)
at nav-controller-base.js:263
at t.invoke (polyfills.js:3)
at Object.onInvoke (core.js:4760)
at t.invoke (polyfills.js:3)
at r.run (polyfills.js:3)
at polyfills.js:3
3个回答
if (localStorage.getItem('agentdetail')) {
this.agentdetail = JSON.parse(localStorage.getItem('agentdetail'));
if (this.agentdetail && this.agentdetail.branchDetails && this.agentdetail.branchDetails.length > 0){
for (let i = 0; i < this.agentdetail.branchDetails.length; i++) {
this.branchCodeArray[i] = this.agentdetail.branchDetails[i].branchCode
}
}
这样使用会起作用,因为 this.agentdetail.branchDetails 可能为空
Sangar Lal
2020-12-04
问题出在这行
for (let i = 0; i < this.agentdetail.branchDetails.length; i++)
。
执行循环时,变量 agentdetail 中没有值。很可能是在此之前的某些代码未能为该变量分配任何值。调试代码以找出原因。
或者,您可以使用 @sangar-lal 在他的回答中提到的检查。
Delwyn Pinto
2020-12-09
我在开发新闻应用时也遇到了同样的错误,该应用从外部 API(NEWS API)获取数据。 如果您正在开发类似的东西,
您可能超出了 API 请求限制。
要解决此错误,只需等待 12 或 24 小时,您的 API 请求将恢复或升级到付费计划。
复制并粘贴“无法加载资源”的链接到新标签页中以检查您的 API 状态, 您可能会收到:
{"status":"error","code":"rateLimited","message":"您最近发出的请求过多。开发者帐户在 24 小时内最多可发出 100 个请求(每 12 小时最多可发出 50 个请求)。如果您需要更多请求,请升级到付费计划。"
Syed Ismail Quadri
2023-01-12