Rumah  >  Artikel  >  hujung hadapan web  >  Cara Membetulkan \"TypeError: Tidak Dapat Membaca Sifat Tidak Ditakrifkan\" dengan Fungsi Peta dalam React

Cara Membetulkan \"TypeError: Tidak Dapat Membaca Sifat Tidak Ditakrifkan\" dengan Fungsi Peta dalam React

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-20 06:27:29148semak imbas

How to Fix

Ralat "Cannot Read Property of Undefined" dalam React with Map Function

Dalam aplikasi React, menghadapi mesej ralat "TypeError: Tidak boleh membaca sifat 'onPlayerScoreChange' yang tidak ditentukan " biasanya menunjukkan masalah dengan pengikatan apabila menggunakan fungsi peta. Begini cara untuk menyelesaikan isu ini:

Fungsi peta mencipta tatasusunan baharu dengan mengulang tatasusunan sedia ada dan menggunakan fungsi panggil balik untuk setiap elemen. Dalam fungsi panggil balik, ini merujuk kepada konteks global, bukan konteks komponen React. Oleh itu, tanpa pengikatan yang betul, mengakses sifat komponen React dari dalam fungsi panggil balik akan mengakibatkan ralat "tidak ditentukan".

Untuk menyelesaikannya, anda boleh sama ada menggunakan fungsi anak panah atau mengikat fungsi panggil balik ke React konteks komponen.

Dengan Fungsi Anak Panah:

Fungsi anak panah mewarisi konteks fungsi sekeliling, jadi anda hanya boleh menggunakan fungsi anak panah untuk panggil balik peta:

<code class="javascript">{this.state.initialPlayers.map((player, index) => {
    return (
        <Player
            name={player.name}
            score={player.score}
            key={player.id}
            index={index}
            onScoreChange={this.onPlayerScoreChange}
        />
    );
})}</code>

Dengan Bind:

Sebagai alternatif, anda boleh mengikat fungsi panggil balik peta ke konteks komponen React secara manual:

<code class="javascript">{this.state.initialPlayers.map(function(player, index) {
    return (
        <Player
            name={player.name}
            score={player.score}
            key={player.id}
            index={index}
            onScoreChange={this.onPlayerScoreChange.bind(this)}
        />
    );
}).bind(this)}</code>

Dengan melaksanakan sama ada daripada kaedah ini, konteks ini akan diikat dengan betul, membolehkan anda mengakses sifat komponen React dalam fungsi panggil balik peta dan mengelakkan ralat "tidak ditentukan".

Atas ialah kandungan terperinci Cara Membetulkan \"TypeError: Tidak Dapat Membaca Sifat Tidak Ditakrifkan\" dengan Fungsi Peta dalam React. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn