我在React Native中使用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,}
请帮助
答案 0 :(得分:1)
在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混淆您。
希望有帮助。毫无疑问,不清楚吧