Maison  >  Questions et réponses  >  le corps du texte

Comment transmettre des données à la fonction onclick en boucle dans React.js ?

<p>Tout d’abord, je vais mettre le code. </p> <pre class="brush:php;toolbar:false;">{gameModes.map((gameMode, key) => { retour ( ≪> <div className={styles.gameMode} key={key} onClick={gameModeHandler}> <div className={styles.gameModeContent}> <img src={gameMode.gameModeArtwork} alt="" /> <p className={styles.modeTitle}>{gameMode.gameModeTitle}</p> <p className={styles.modeDesc}> {gameMode.gameModeDesc} </p> </div> </div> ≪/> ); })}</pré> <p><strong>fonction onClick</strong></p> <pre class="brush:php;toolbar:false;">const gameModeHandler = (e) => console.log(e.target.value) }</pré> <p>En gros, ce que je veux, c'est que lorsque onClick prend effet, transmettre le gameMode.title à la fonction onClick pour l'imprimer sur la console. Je ne sais pas comment transmettre onClick de manière à pouvoir accéder à ces données en boucle. </p>
P粉523335026P粉523335026388 Il y a quelques jours470

répondre à tous(2)je répondrai

  • P粉320361201

    P粉3203612012023-08-31 18:13:17

    Vous avez besoin d'une deuxième fonction pour transmettre les données : onClick={() => gameModeHandler(gameMode.title)}.

    répondre
    0
  • P粉959676410

    P粉9596764102023-08-31 11:23:12

    Vous devez utiliser la fonction de rappel pour votre événement onClick. Et ajustez votre fonction en conséquence ;

    événement onClick

    onClick={()=>gameModeHandler(gameMode.gameModeTitle)}

    Fonction onClick

    const gameModeHandler = (gameModeTitle) => {
        console.log(gameModeTitle)
      }

    Cependant, si vous souhaitez passer un seul objet de la boucle à la fonction appelée, vous pouvez passer l'objet gameMode en paramètre à la fonction gameModeHandler ;

    événement onClick

    onClick={()=>gameModeHandler(gameMode)}

    Fonction onClick

    const gameModeHandler = (gameMode) => {
        console.log(gameMode)
      }

    Vous pouvez évidemment ensuite extraire le

    gameModeTitle; de l'objet

    console.log(gameMode.gameModeTitle)

    répondre
    0
  • Annulerrépondre