Axios响应返回对象,而不是数组

问题描述 投票:0回答:1

我正在使用axios来响应本机。邮递员的原始回复如下所示:

{
    "id": 2,
    "parent_id": 1,
    "name": "Default Category",
    "is_active": true,
    "position": 1,
    "level": 1,
    "product_count": 2,
    "children_data": [
        {
            "id": 3,
            "parent_id": 2,
            "name": "Papers",
            "is_active": true,
            "position": 1,
            "level": 2,
            "product_count": 2,
            "children_data": [
                {
                    "id": 5,
                    "parent_id": 3,
                    "name": "A44",
                    "is_active": true,
                    "position": 1,
                    "level": 3,
                    "product_count": 0,
                    "children_data": []
                }
            ]
        },
        {
            "id": 6,
            "parent_id": 2,
            "name": "Laptop",
            "is_active": true,
            "position": 2,
            "level": 2,
            "product_count": 1,
            "children_data": []
        }
    ]
}

[我如何尝试此console.log(typeof categoryResponse.data.children_data);我得到对象。这引起了问题,因为我正在尝试更新类型为array的react-native中的状态变量。甚至打印console.log(categoryResponse.data);时看起来很奇怪的响应对象。

对象{“ children_data”:数组[对象{“ children_data”:数组[对象{“ children_data”:数组[],“ id”:5“ is_active”:是,“级别”:3,“名称”:“ A44”,“ parent_id”:3,“位置”:1“ product_count”:0,},],“ id”:3,“ is_active”:是,“级别”:2“ name”:“ Paper”,“ parent_id”:2“位置”:1“ product_count”:2},对象{“ children_data”:数组[],“ id”:6“ is_active”:是,“级别”:2“ name”:“笔记本电脑”,“ parent_id”:2“位置”:2“ product_count”:1},],“ id”:2,“ is_active”:true,“ level”:1,“ name”:“默认类别”,“ parent_id”:1,“ position”:1,“ product_count”:2,}

请帮助

react-native axios
1个回答
0
投票

在javascript中,typeof数组实际上是一个对象。在javascript中,只有6种数据类型。数组是对象的子集,因此console.log(typeof categoryResponse.data.children_data)即使对象是数组也返回对象。

但是您可以看到console.log(categoryResponse.data)时看到的

Object { "children_data": Array [ Object { "children_data": Array [ Object { "children_data": Array [], "id": 5, "is_active": true, "level": 3, "name": "A44", "parent_id": 3, "position": 1, "product_count": 0, }, ], "id": 3, "is_active": true, "level": 2, "name": "Papers", "parent_id": 2, "position": 1, "product_count": 2, }, Object { "children_data": Array [], "id": 6, "is_active": true, "level": 2, "name": "Laptop", "parent_id": 2, "position": 2, "product_count": 1, }, ], "id": 2, "is_active": true, "level": 1, "name": "Default Category", "parent_id": 1, "position": 1,
"product_count": 2, }

在这里,您将“ childern_data”视为一个数组。

"children_data": Array [ Object {

因此基本上是一个数组,不要让typeof引起您的困惑。

希望有帮助。毫无疑问,不清楚吧

© www.soinside.com 2019 - 2024. All rights reserved.