如何让它引用React组件?

时间:2017-07-09 01:03:39

标签: reactjs

我有一个拥有handleRecord方法的视频组件类。在recorder方法中,有一个名为stopRecording的对象,它返回一个名为this的对象方法调用的blob。

无论返回什么,我都希望该值在视频组件中设置状态。但是recorder指的是回调中的记录器对象,而不是组件本身。在回调中获取组件并使用handleRecord() { ... } else { this.state.recordVideo recorder.stopRecording(function() { var blob = this.getBlob(); console.log(this) // <= this refers to recorder object not the component }); } } 对象的最佳做法是什么?

{{1}}

1 个答案:

答案 0 :(得分:1)

您可以设置一个变量来引用该组件,然后在函数中使用它:

const component = this;
recorder.stopRecording(function() {
    var blob = this.getBlob(); 
    console.log(component); 
});

引用组件并将其缓存在this中时,这基本上会捕获component值,因此当您在回调函数{{1}中使用它时我将引用记录器对象,但this将引用您的组件。

当然,如果您想使用类似箭头函数的东西, 可以直接引用component对象,该函数取其封闭的recorder值范围 - 这是组件:

this