JavaScript无法在事件处理程序中访问React实例(this)

JavaScript无法在事件处理程序中访问React实例(this),第1张

JavaScript无法在事件处理程序中访问React实例(this)

this.changeContent``this.changeContent.bind(this)
在作为
onChange
prop
传递之前,需要先通过绑定组件实例,否则
this
函数主体中的变量将不会引用组件实例,而是指向
window
。参见Function ::
bind

当使用

React.createClass
而不是ES6类时,组件上定义的每个非生命周期方法都会自动绑定到组件实例。请参阅自动绑定。

请注意,绑定功能会创建一个新功能。您可以将其直接绑定到render中,这意味着每次渲染该组件时都会创建一个新函数,或者将其绑定到构造函数中,后者只会触发一次。

constructor() {  this.changeContent = this.changeContent.bind(this);}

render() {  return <input onChange={this.changeContent.bind(this)} />;}

引用是在组件实例上设置的,而不是在组件实例上设置的

React.refs
:您需要更改
React.refs.someref
this.refs.someref
。您还需要将
sendContent
方法绑定到组件实例,以便对其进行
this
引用。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5011490.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存