IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

React Discussion :

Créer dynamiquement une chaîne de caractères dans une balise html


Sujet :

React

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2022
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2022
    Messages : 21
    Par défaut Créer dynamiquement une chaîne de caractères dans une balise html
    Bonjour,

    J'ai besoin de créer une table dynamiquement, cette table a trois niveaux d'accordéon (lignes qui se déplient) donc je dois attribuer un id à chacune de mes balises <tr> pour que la fonctionnalité d'accordéon de bootstrap fonctionne correctement.

    Je peux avoir un nombre infini de <tr> donc je voudrais créer mes <tr> de la manière suivante :

    - Je lis les données reçues avec un .map
    - Pour chaque donnée lue, je récupère l'index actuel dans la fonction map.
    - Dans mon tag html <tr> je crée mon id avec une chaîne de caractère prédéfinie à laquelle j'ajoute l'index par une interpolation.

    Pour ce faire, j'ai écrit le code suivant :
    (Le retour de cette fonction complète une table déjà créée en créant le <tr> du <tbody>)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    function renderTableData() {
            if(data?.tableData){
                return data.tableData.map((currentData, index) => {
                    return (
                        <>
                            <tr key={nanoid()} data-toggle="collapse" data-bs-toggle="collapse" data-bs-target="#main-accordion${index}">
                                <td>{currentData.someField}</td>
                            </tr>
                            <tr className="collapse accordion-collapse" id="main-accordion${index}">
                                //Un autre <tr> qui va contenir mon premier accordéon imbriqué dans mon tableau principal
                            </tr>
                        </>
                    )
            })} else{return undefined}
        }
    Comme vous pouvez le voir dans le code ci-dessus, j'essaie de créer mon id de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tag-property="#name_id${index}"
    .

    Mais l'interpolation ne se fait pas et la chaîne de caractère créée est : "#main-accordion${index}".

    Cela me donne l'erreur suivante :
    Failed to execute 'querySelector' on 'Document': '#main-accordion${index}' is not a valid selector.
    Quelqu'un sait-il comment faire une interpolation de ce type dans une propriété d'une balise html ? Je ne vois vraiment pas comment faire, toute aide serait la bienvenue.

  2. #2
    Expert confirmé

    Avatar de -Nikopol-
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2013
    Messages
    2 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 2 174
    Billets dans le blog
    5
    Par défaut
    comme ceci data-bs-target="{`#main-accordion${index}`}" (attention ce sont des back tildes pas des quotes)
    ou data-bs-target={"#main-accordion" + index}

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2022
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2022
    Messages : 21
    Par défaut
    Super ça marche bien avec ta syntaxe, merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 12
    Dernier message: 11/11/2019, 09h08
  2. Réponses: 7
    Dernier message: 01/11/2019, 20h51
  3. [D2010] Comment créer dynamiquement une TSQLStoredProc ?
    Par Lung dans le forum Composants VCL
    Réponses: 7
    Dernier message: 23/11/2012, 18h35
  4. [C#] Comment remplir dynamiquement une table HTML ?
    Par tiboleo dans le forum ASP.NET
    Réponses: 3
    Dernier message: 31/05/2006, 09h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo