Heim >Web-Frontend >js-Tutorial >So beheben Sie „TypeError: Eigenschaft von Undefiniert kann nicht gelesen werden' mit der Map-Funktion in React

So beheben Sie „TypeError: Eigenschaft von Undefiniert kann nicht gelesen werden' mit der Map-Funktion in React

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-20 06:27:29234Durchsuche

How to Fix

Fehler „Eigenschaft von Undefiniert kann nicht gelesen werden“ in React mit Map-Funktion

In React-Anwendungen wird die Fehlermeldung „TypeError: Eigenschaft „onPlayerScoreChange“ von undefiniert kann nicht gelesen „ weist häufig auf ein Problem mit der Bindung bei Verwendung der Kartenfunktion hin. So lösen Sie dieses Problem:

Die Map-Funktion erstellt ein neues Array, indem sie ein vorhandenes Array durchläuft und für jedes Element eine Rückruffunktion aufruft. Innerhalb der Callback-Funktion bezieht sich dies auf den globalen Kontext, nicht auf den Kontext der React-Komponente. Ohne ordnungsgemäße Bindung führt der Zugriff auf Eigenschaften der React-Komponente aus der Callback-Funktion daher zum Fehler „undefiniert“.

Um dieses Problem zu beheben, können Sie entweder Pfeilfunktionen verwenden oder die Callback-Funktion an React binden Kontext der Komponente.

Mit Pfeilfunktionen:

Pfeilfunktionen erben den Kontext der umgebenden Funktion, sodass Sie einfach eine Pfeilfunktion für den Kartenrückruf verwenden können:

<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>

Mit Bind:

Alternativ können Sie die Map-Callback-Funktion manuell an den Kontext der React-Komponente binden:

<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>

Durch die Implementierung von beidem Bei diesen Methoden wird dieser Kontext korrekt gebunden, sodass Sie innerhalb der Map-Callback-Funktion auf die Eigenschaften der React-Komponente zugreifen und den „undefinierten“ Fehler vermeiden können.

Das obige ist der detaillierte Inhalt vonSo beheben Sie „TypeError: Eigenschaft von Undefiniert kann nicht gelesen werden' mit der Map-Funktion in React. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn