我正在使用React Native创建应用程序,并且想要制作带节标题的<ListView>
。我一直在关注几个不同的帖子,这些帖子描述了如何做到这一点,我遇到了一个奇怪的问题:阵列长度显示不正确
创建<ListView>
的一部分是创建两个数组:一个是Sections的ID数组,另一个是由行ID组成的阵列数组。顶层的两个数组应该有相同数量的元素。
我创建从JSON数据阵列:
[
{
"id": 12,
"name": "Surfhouse 1",
"guests": [
{
"id": 100,
"name": "Oliver Nicholson",
"email": "[email protected]",
"age": "32"
},
{
"id": 101,
"name": "Nollie Bollie",
"email": "[email protected]",
"age": "20"
},
{
"id": 102,
"name": "Wootang",
"email": "[email protected]",
"age": "57"
}
]
},
{
"id": 25,
"name": "Surfhouse 2",
"guests": [
{
"id": 200,
"name": "Alycia Woot",
"email": "[email protected]",
"age": "32"
},
{
"id": 201,
"name": "Tim Jang",
"email": "[email protected]",
"age": "20"
},
{
"id": 202,
"name": "Hootenany Yeah",
"email": "[email protected]",
"age": "57"
}
]
}
]
,这反过来又被映射出用下面的函数(其中accommodation
是导入JSON数据):
const formatDataForListView = accommodation => {
const dataBlob = {};
const sectionIDs = [];
const rowIDs = [];
accommodation.forEach((accom) => {
sectionIDs.push(accom.id);
dataBlob[accom.id] = accom.name;
rowIDs[accom.id] = []; // initialise empty array associated with Section ID
accom.guests.forEach((guest) => {
rowIDs[accom.id].push(guest.id);
dataBlob[accom.id + ':' + guest.id] = guest;
});
});
一切似乎很好:我得到了预期的阵列,但由于某种原因,RowIDs
阵列有length: 26
(我相信)它应该只是2.
rowIDs
阵列的长度是怎样的26?
好吧,没错,疑难杂症。谢谢。 –