【问题标题】:Need help -> Uncaught (in promise) TypeError: Cannot read property 'length' of undefined需要帮助->未捕获(承诺中)类型错误:无法读取未定义的属性“长度”
【发布时间】:2019-12-19 07:35:06
【问题描述】:

我有一个网站,当我尝试创建新内容并选择一个类别时出现错误。之前有没有遇到过这个问题?

我不知道如何解决这个问题。

     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]);
        }
    },

我已经上传了这 2 张图片的错误。希望你能帮我解决这个问题。 https://www.screencast.com/t/PWjbxIgJe

https://www.screencast.com/t/Jt2RN08G

非常感谢

【问题讨论】:

标签: javascript php vue.js


【解决方案1】:

这是一种很常见的错误。当您尝试访问不存在的对象的属性(或方法)时,就会发生这种情况。

一个例子

const myObject: SomeObject;
if ( myObject.length === 0) {... }

在这种情况下,myObjec 已声明但仍未定义。
因此,length 属性在未定义时被调用。你会得到错误“无法读取未定义的属性长度”。

在您的情况下,请检查方法 setHierarchyPaths 是如何被调用的,因为看起来(正如 jonrsharpe 在评论中已经说过的那样)参数 categories 提供了一个未定义的值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 2018-10-29
    • 2020-12-15
    • 2017-08-12
    相关资源
    最近更新 更多