Home > front end >  Type error: Type 'string[]' cannot be used as an index type
Type error: Type 'string[]' cannot be used as an index type

Time:11-02

What is wrong here:

let organization = organizationList2[context.params?.organizationId];
Failed to compile.

./pages/[lang]/designer/[organizationId].tsx:337:40
Type error: Type 'string[]' cannot be used as an index type.

  335 |   });
  336 |   let organizationList2 = await organizationList2Data.json();

> 337 |   let organization = organizationList2[context.params?.organizationId];

Strange why rganization is undefined.

organizationList2 {
  'EC763372-277D-46B9-AD87-F45519E7D606': {
    name: 'TADA moment',
    events: { 'tada-moment-asztalivaza': [Object] }
  },
  'E8495FF0-B2DB-439A-98AA-873843635D3A': {
    name: 'Olovka Stúdió',
    events: { 'olovka-studio-peyote-gyuru': [Object] }
  },
  'AAE00290-39D6-4F32-A2FB-208F054B24AE': {
    events: { 'zer-jewel-rez-gyertyatarto': [Object] },
    name: 'Zer Jewel'
  },
  '637F7B7D-DD4E-4FE5-944E-99628187D8C2': {
    events: { 'yo-self-szinezz-textilmintat': [Object] },
    name: 'Yo Self'
  },
  '5E6A24C0-6E5B-4F53-BCFB-1D08254BD630': {
    name: 'Bognár Angéla',
    events: { 'bognar-angela-bortaska': [Object] }
  },
  '49350609-A83F-41AB-9CC1-A482D52AF2F5': {
    userRating: '4.6',
    socialNetworkContact: '',
    shopPhysicalLocation: '',
    name: 'Repityke',
    events: { 'repityke-origami-penztarca': [Object] }
  },
  '63DCAEF9-2A26-4FDF-BACA-921339E62450': {
    events: { 'kredenc-muterem-betonlampa': [Object] },
    name: 'Kredenc Műterem'
  },
  '7181FDC7-A58E-45B1-A377-A21E4C62442C': {
    userRating: '4.5',
    socialNetworkContact: 'instagram/kutasibeata',
    shopPhysicalLocation: 'Szeghalom, Magyarország',
    designerIntroduction: 'Kutasi Beáta vagyok, bőrtárgy-tervező iparművész.  2011-ben alapítottam saját műhelyt, ahol egyedi tervezésű táskák és kiegészítők kivitelezésével foglalkozom.  A minőségi, természetes alapanyagokat kedvelem, a tárgyaim elkészítésénél a bőrt szívesen kombinálom pamut zsinórfonallal, gyapjúfilccel, fával. Törekszem a tradícionális kézműves technikák életben tartására. Célom, hogy táskáim olyan emberekre találjanak, akik ragaszkodnak a kiválasztottjukhoz és sokáig használják azokat.',
    name: 'Kutasi Beáta',
    events: { 'kutasi-beata-horgolt-valltaska': [Object] }
  }
}
context.params?.organizationId 7181fdc7-a58e-45b1-a377-a21e4c62442c
oraganization undefined

and organizationId:

let organizationId: string = context.params?.organizationId as string;

and the whole method:

export const getStaticProps: GetStaticProps = async ({ ...context }) => {
  let organizationList2Data = await fetch(`${baseURL}getSMOrganizations`, {
    method: "post",
    headers: { "Content-Type": "application/json" },
  });
  let organizationList2 = await organizationList2Data.json();
  let organization = organizationList2[context.params?.organizationId];
  console.log("organizationList2", organizationList2);
  console.log("context.params?.organizationId", context.params?.organizationId);
  console.log("oraganization", organization);
  let zz = Object.keys(organizationList2);
  console.log("zz", zz);
  let organizationId: string = context.params?.organizationId as string;
  return {
    props: {
      organizationId: context.params?.organizationId,
      organization: organization ?? "",
    },
    revalidate: 600,
  };
};

CodePudding user response:

It's because context.params?.organizationId which is "7181fdc7-a58e-45b1-a377-a21e4c62442c" is lower case and the organizationList2 keys are upper case

just do

let organization = organizationList2[context.params?.organizationId?.toUpperCase()];
  • Related