reactjs - React/Typescript Egenskab 'data' findes ikke på typen 'IntrinsicAttributes & [Interface]'


Jeg har oprettet en komponent, hvor jeg får adgang til en lokal json-fil og sender arrayet af objekter til en anden komponent.

Kodeudsnit til første komponent -

import erklæring - import TvData fra './Data/TVData.json';

for den anden komponent sender jeg dataene sådan her, jeg får Fejl for denne linje, som siger

Type '{ data: { id: number; name: string; price: number; imageUrl: string; }[]; }' is not assignable to type 'IntrinsicAttributes & dataProps'.
  Property 'data' does not exist on type 'IntrinsicAttributes & dataProps'.
 <SecondComponent data={TvData} />

Kodeuddrag for den anden komponent -

her definerede jeg interface på denne måde,

interface dataProp {
    id: number;
    name: string;
    price : number;
    imageUrl : string;
}
type dataProps = dataProp[];

og den funktionelle komponent med parametre som sådan,

function SecondComponent(data: dataProps)

indenfor hvilket jeg kortlægger gennem arrayet af objekter fra json-filen

{
  data.map((item : dataProp) =>
   {
    return (
     <Item key={item.id}>
        {item.name}
      </Item>
           )
    }
  )}

Jeg er ny til React med Typescript, så enhver form for hjælp ville blive værdsat.

Svar #1

komponentens props skal være et objekt, ikke et array. Prøv at placere arrayet inden i en af input-propsene, sådan her:

interface Item {
    id: number;
    name: string;
    price : number;
    imageUrl : string;
}
type Props = { data: Item[] };

...

function SecondComponent(props: Props) {
  return props.data.map(item => (
     <Item key={item.id}>
        {item.name}
      </Item>
    ));
}
    

Relaterede artikler