Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk menghantar data ke fungsi onclick dalam gelung dalam React.js?

<p>Mula-mula, saya akan masukkan kod. </p> <pre class="brush:php;toolbar:false;">{gameModes.map((gameMode, key) => { kembali ( <> <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> </> ); })}</pra> <p><strong>pada fungsi Klik</strong></p> <pre class="brush:php;toolbar:false;">const gameModeHandler = (e) => console.log(e.target.value) }</pre> <p>Pada asasnya, apa yang saya mahukan ialah, apabila onClick berkuat kuasa, hantar gameMode.title kepada fungsi onClick untuk mencetaknya ke konsol. Saya tidak tahu bagaimana untuk meneruskan onClick dengan cara yang saya boleh mengakses data itu dalam satu gelung. </p>
P粉523335026P粉523335026439 hari yang lalu505

membalas semua(2)saya akan balas

  • P粉320361201

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

    Anda memerlukan fungsi kedua untuk menghantar data: onClick={() => gameModeHandler(gameMode.title)}.

    balas
    0
  • P粉959676410

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

    Anda perlu menggunakan fungsi panggil balik untuk acara onClick anda. Dan laraskan fungsi anda dengan sewajarnya;

    acara onClick

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

    fungsi onClick

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

    Walau bagaimanapun, jika anda ingin menghantar satu objek dari gelung ke fungsi yang dipanggil, anda boleh menghantar objek gameMode sebagai parameter kepada fungsi gameModeHandler;

    acara onClick

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

    fungsi onClick

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

    Sudah tentu anda boleh mengekstrak

    gameModeTitle; daripada objek

    console.log(gameMode.gameModeTitle)

    balas
    0
  • Batalbalas