J'essaye de passer des accessoires à mon composant, mais je ne semble pas pouvoir passer la 'Commune' car elle a une propriété de nom.

Une idée de la façon dont je passe Commune.name comme accessoire à mon composant?

Ce sont mes interfaces,

interface Base {
       Titre: string,
       TextComplet: string,
       DateDebut: string
       DateFin: string,
       Commune: Commune,
       Image: Blob | undefined,  
    }

export interface Info extends Base  {
   TextPreview: string,
}

export interface Commune{
    Id?: number,
    name: string
}

C'est mon composant où je veux passer les accessoires

<Preview Commune={Commune[0].name} Titre={Titre} TextComplet={Text_Complet} DateDebut={Date_Debut} DateFin={Date_Fin} TextPreview={Text_Preview} ></Preview>

C'est l'erreur que je reçois

enter image description here

0
Maxime Ghéraille 29 oct. 2020 à 22:43

2 réponses

Meilleure réponse

Comme @ nicholas-tower a dit que je peux passer tout l'objet, donc sans changer le code, je peux le passer comme ça

<Preview Commune={{name: Commune[0].name, Id: Commune[0].Id}} Titre={Titre} TextComplet={Text_Complet} DateDebut={Date_Debut} DateFin={Date_Fin} TextPreview={Text_Preview} ></Preview>
0
Maxime Ghéraille 29 oct. 2020 à 19:56

Si vous souhaitez transmettre uniquement le nom, changez le type de l'accessoire en une chaîne:

interface Base {
  Titre: string,
  TextComplet: string,
  DateDebut: string
  DateFin: string,
  Commune: string, // <---- changed this line
  Image: Blob | undefined,  
}

Si vous voulez passer tout l'objet commune, alors votre type est correct, mais vous devez changer votre code pour transmettre l'objet entier:

<Preview Commune={Commune[0]} /* etc */ />
2
Nicholas Tower 29 oct. 2020 à 19:47