Я создаю приложение с использованием React Native и хочу сделать <ListView>
с заголовками разделов. Я слежу за несколькими сообщениями, которые описывают, как это сделать, и я столкнулся с странной проблемой:Длина массива неверна
Часть создания <ListView>
состоит в том, чтобы создать два массива: один представляет собой массив идентификаторов для разделов и другой - массив массивов, состоящий из идентификаторов строк. Два массива на их верхнем уровне должны иметь одинаковое количество элементов в них.
Я создаю массивы из 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;
});
});
Everything Кажется, все в порядке: я получаю ожидаемые массивы, но по какой-то причине массив RowIDs
имеет length: 26
, когда (я считаю) это должно быть только 2.
Каким образом массив rowIDs
имеет длину 26?
Хорошо, да, Гоча. Благодарю. –