0

次の JSON の ListItems というコンポーネントを作成しました。このコンポーネントは、地域データと郊外データの間で共有されます。

Region 1 と Region 2 (両方とも郊外が 2 つある) を選択すると、問題なく動作します。ただし、10 の郊外があるリージョン 3 を選択するとすぐに、undefined is not an object (evaluating 'arrs[index].isChecked') エラーがスローされます。console.log(arrs) を実行すると、以前に選択したリージョンの状態が保持されます。地域の選択が変更されたときに、状態のarrsをリセットするにはどうすればよいですか? 古い状態の配列の長さを維持しています。

ここでスナックを作成しました: https://snack.expo.dev/@everestster/listitem-component

どんな助けでも大歓迎です。

[
  {
    id: 1,
    name: 'Project 1',
    regions: [
      {
        id: 1,
        name: 'Region 1',
        type: 'region',
        itemsCount: 200781,
        suburbs: [
          {
            id: 1,
            name: 'Suburb 1',
            type: 'suburb',
            itemsCount: 120,
          },
          {
            id: 2,
            name: 'Suburb 2',
            type: 'suburb',
            itemsCount: 120,
          },
        ],
      },
      {
        id: 2,
        name: 'Region 2',
        itemsCount: 149814,
        type: 'region',
        suburbs: [
          {
            id: 3,
            name: 'Suburb 3',
            type: 'suburb',
            itemsCount: 1,
          },
          {
            id: 4,
            name: 'Suburb 4',
            type: 'suburb',
            itemsCount: 1,
          },
        ],
      },
      {
        id: 3,
        name: 'Region 3',
        type: 'region',
        itemsCount: 230711,
        suburbs: [
          {
            id: 5,
            name: 'Suburb 5',
            type: 'suburb',
            itemsCount: 1417,
          },
          {
            id: 6,
            name: 'Suburb 6',
            type: 'suburb',
            itemsCount: 54,
          },
          {
            id: 101,
            name: 'Suburb 101',
            type: 'suburb',
            itemsCount: 34,
          },
          {
            id: 102,
            name: 'Enmore',
            type: 'suburb',
            itemsCount: 6579,
          },
          {
            id: 103,
            name: 'Subutb 103',
            type: 'suburb',
            itemsCount: 1730,
          },
          {
            id: 104,
            name: 'Suburb 104',
            type: 'suburb',
            itemsCount: 9443,
          },
          {
            id: 105,
            name: 'Suburb 105',
            type: 'suburb',
            itemsCount: 1730,
          },
          {
            id: 105,
            name: 'Hornsby',
            type: 'suburb',
            itemsCount: 14418,
          },
          {
            id: 106,
            name: 'Suburb 106',
            type: 'suburb',
            itemsCount: 1620,
          },
          {
            id: 107,
            name: 'Suburb 107',
            type: 'suburb',
            itemsCount: 14418,
          },
        ],
      },
      {
        id: 4,
        name: 'Region 4',
        type: 'region',
        itemsCount: 120852,
        suburbs: [
          {
            id: 7,
            name: 'Suburb 7',
            type: 'suburb',
            itemsCount: 1,
          },
          {
            id: 8,
            name: 'Suburb 8',
            type: 'suburb',
            itemsCount: 1,
          },
        ],
      },
      {
        id: 5,
        name: 'Region 5',
        type: 'region',
        itemsCount: 234840,
        suburbs: [
          {
            id: 9,
            name: 'Suburb 9',
            type: 'suburb',
            itemsCount: 1,
          },
          {
            id: 10,
            name: 'Suburb 10',
            type: 'suburb',
            itemsCount: 1,
          },
        ],
      },
    ],
  },
  {
    id: 2,
    name: 'Project 2',
    regions: [
      {
        id: 11,
        name: 'Region 11',
        type: 'region',
        suburbs: [],
      },
      {
        id: 12,
        name: 'Region 12',
        type: 'region',
        suburbs: [],
      },
    ],
  },
  {
    id: 3,
    name: 'Project 3',
    regions: [],
  },
  {
    id: 4,
    name: 'Project 4',
    regions: [],
  },
  {
    id: 5,
    name: 'Project 5',
    regions: [],
  },
];
4

0 に答える 0