问题:
用户遇到“TypeError” :尽管看似正确的函数绑定,但在React应用程序中无法读取未定义的属性“onPlayerScoreChange”错误。
答案:
问题在于地图的使用将函数作为属性传递。如果不在映射中绑定函数,则此函数的上下文会发生变化,并且 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>
绑定:
<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中文网其他相关文章!