Javascript 如何使用;这";在作为“传递”的函数中;“道具”;到子组件?
我用的是ReactJS 我有一个呈现子组件的组件,我以Javascript 如何使用;这";在作为“传递”的函数中;“道具”;到子组件?,javascript,reactjs,Javascript,Reactjs,我用的是ReactJS 我有一个呈现子组件的组件,我以prop的形式传递一个函数。但是,我不能在函数处理程序中使用this var MyComponent = React.createClass({ onChildStatusChanged: function () { // this.state is undefined, of course, because this function hasn't been called from this object conte
prop
的形式传递一个函数。但是,我不能在函数处理程序中使用this
var MyComponent = React.createClass({
onChildStatusChanged: function () {
// this.state is undefined, of course, because this function hasn't been called from this object context.
},
render: function() {
return <div>
<SubComponent onStatusChanged={this.onChildStatusChanged} />
</div>
}
var MyComponent=React.createClass({
OnChildStatus已更改:函数(){
//当然,this.state是未定义的,因为此函数尚未从此对象上下文中调用。
},
render:function(){
返回
}
如何在
onChildStatusChanged
中使用this
?您可以使用bind
将当前this
上下文绑定到this.onChildStatusChanged
函数
this.onChildStatusChanged.bind(this)
bind
函数将返回一个等于onChildStatusChanged
的函数,但将此
上下文设置为您指定的上下文
bind
是ES5的一项功能,因此,如果您的目标系统是
您可以使用bind
将当前this
上下文绑定到this.onChildStatusChanged
函数
this.onChildStatusChanged.bind(this)
bind
函数将返回一个等于onChildStatusChanged
的函数,但将此
上下文设置为您指定的上下文
bind
是ES5的一项功能,因此,如果您的目标系统是
谢谢,但是我到底应该在哪里调用this.onChildStatusChanged.bind(this)
?您也可以使用带有隐式.bind(this)
的箭头函数,例如this.onChildStatusChanged(e)}/>
。这些函数通常足够简洁,可以内联执行简单的操作,例如this.setState>({foo:e.target.value}/>
谢谢,但是我应该在哪里调用this.onChildStatusChanged.bind(this)
?您也可以使用带有隐式.bind(this)
的箭头函数,例如this.onChildStatusChanged(e)}/>
。它们通常足够简洁,可以内联执行简单的操作,例如this.setState({foo:e.target.value})}/>