javascript - 需要帮助->未捕获(承诺)类型错误:无法读取未定义的属性“长度”
问题描述
我有一个网站,当我尝试创建新内容并选择一个类别时出现错误。之前有没有碰巧遇到过这个问题?
我不知道如何解决这个问题。
setHierarchyPaths: function (categories, path) {
for (var i = 0; i < categories.length; i++) {
if (typeof path !== 'undefined') {
categories[i].path = path + '.' + categories[i].id;
} else {
categories[i].path = categories[i].id;
}
if (categories[i].childrens.length > 0) {
this.setHierarchyPaths(categories[i].childrens,
categories[i].path);
}
// We need a flat tree!
this.flatTree.push(categories[i]);
}
},
我已经上传了这两张图片的错误。希望你能帮我解决这个问题。 https://www.screencast.com/t/PWjbxIgJe
https://www.screencast.com/t/Jt2RN08G
非常感谢
解决方案
这是一种很常见的错误。当您尝试访问不存在的对象的属性(或方法)时,就会发生这种情况。
一个例子
const myObject: SomeObject;
if ( myObject.length === 0) {... }
在这种情况下myObjec
,已声明但仍未定义。
因此,结果length
是在未定义时调用该属性。你会得到错误“无法读取未定义的属性长度”。
在您的情况下,请检查该方法setHierarchyPaths
是如何被调用的,因为看起来(正如 jonrsharpe 在评论中已经说过的那样),该参数categories
被提供了一个未定义的值。
推荐阅读
- azure - Office 365:将 Azure 应用程序限制为一组用户
- sql - Oracle中至少有两个大写和两个小写字母的密码正则表达式
- c# - 类似辐射的终端系统 = 匹配字符串中的每个字符
- reactjs - ReactJS 钩子。TypeError: Object(...) 不是函数
- nestjs - 如何让 websockets 与 NestJS 一起工作
- swift - 这意味着什么:“线程 1:”-[First_App.ProximitySensorViewControllerproximityChanged:]:无法识别的选择器发送到实例 0x14d707940“”
- java - 无法创建 HttpSolrClient
- php - Laravel - 将 DB::raw 的结果转换为字符串数组?
- c# - WithMaxRetry 图形 API 时间跨度和 MaxRetry
- python - 调用随机失败的外部 API