ホームページ  >  記事  >  ウェブフロントエンド  >  React で「未定義のプロパティを読み取れません」エラーを解決するにはどうすればよいですか?

React で「未定義のプロパティを読み取れません」エラーを解決するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-20 06:26:01548ブラウズ

How to Resolve the

マップ使用時の React での「未定義のプロパティを読み取れません」エラー

問題:

ユーザーに「TypeError」が発生する: 一見正しい関数バインディングにもかかわらず、React アプリで「未定義のプロパティ 'onPlayerScoreChange'」エラーを読み取れません。

回答:

問題は、次の場合のマップの使用にあります。関数をプロパティとして渡します。マップ内で関数をバインドしないと、このコンテキストが変更され、React コンポーネントのプロパティにアクセスできなくなります。

バインディング オプション:

この問題を解決するには、次のいずれかを使用できます。アロー関数またはバインド関数を使用して、関数のコンテキストを React コンポーネントにバインドします。

Arrow Function:

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

Bind:

<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))}</code>

これらのバインディング メソッドのいずれかを使用すると、関数が正しいコンテキストを持ち、React コンポーネントの this にアクセスできることが保証されます。

以上がReact で「未定義のプロパティを読み取れません」エラーを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。