Javascript 如何使用;这";在作为“传递”的函数中;“道具”;到子组件?

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

我用的是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 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})}/>