React 애플리케이션에서 "TypeError: 정의되지 않은 'onPlayerScoreChange' 속성을 읽을 수 없습니다"라는 오류 메시지가 나타납니다. "는 일반적으로 지도 기능을 사용할 때 바인딩에 문제가 있음을 나타냅니다. 이 문제를 해결하는 방법은 다음과 같습니다.
map 함수는 기존 배열을 반복하고 각 요소에 대해 콜백 함수를 호출하여 새 배열을 생성합니다. 콜백 함수 내에서 이는 React 구성 요소의 컨텍스트가 아닌 전역 컨텍스트를 나타냅니다. 따라서 적절한 바인딩 없이 콜백 함수 내에서 React 구성 요소의 속성에 액세스하면 "정의되지 않은" 오류가 발생합니다.
이 문제를 해결하려면 화살표 함수를 사용하거나 콜백 함수를 React에 바인딩할 수 있습니다. 구성요소의 컨텍스트.
화살표 함수 사용:
화살표 함수는 주변 함수의 컨텍스트를 상속하므로 지도 콜백에 화살표 함수를 간단히 사용할 수 있습니다.
<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>
바인드 사용:
또는 지도 콜백 함수를 React 구성 요소의 컨텍스트에 수동으로 바인딩할 수 있습니다.
<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>
다음 중 하나를 구현하여 이러한 메서드 중 this 컨텍스트는 올바르게 바인딩되어 지도 콜백 함수 내에서 React 구성 요소의 속성에 액세스하고 "정의되지 않은" 오류를 방지할 수 있습니다.
위 내용은 React의 Map 함수를 사용하여 \'TypeError: 정의되지 않은 속성을 읽을 수 없습니다\'를 수정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!