React Nativeを使用してアプリを作成していて、セクションヘッダー付きで<ListView>
にしたいとします。私はそれを行う方法を説明し、私は奇妙な問題に遭遇したいくつかの異なる投稿に従ってきました:配列の長さが正しく表示されない
<ListView>
の作成の一部は、1つのセクションのIDの配列ですもう1つは行IDで構成される配列の配列です。最上位の2つの配列は、同じ量の要素を持つ必要があります。
私は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とすべきである)、それは2にすべきである。
rowIDs
アレイの長さはどのように26ですか?
[OK]を、うん、知っておかなけれ。ありがとう。 –