在反应componentDidMount中绑定(this)之后获取jquery对象

时间:2016-02-11 23:47:41

标签: jquery reactjs

在我的应用程序中,我在componentDidMound中使用了第三方插件,这看起来像这样:

clickStuff: function () {
    //do stuff
},
componentDidMount: function () {

    $(".whatever").on { 'click', function() {
         this.clickStuff();
     }.bind(this));
 }

这允许它在哪里,如果我点击任何div与类"无论"转到反应功能" clickStuff()&#34 ;;

但是,如果我想得到"这" jquery节点。就像$(" .whatever")的属性一样?例如:

componentDidMount: function () {

    $(".whatever").on { 'click', function() {
         //this will cause conflict between the two this
         $(this).attr("title", this.state.titleMessage);
     }.bind(this));
 }

$(this)中的这个应该是jquery节点,而这个在" this.state.titleMessage"应该是反应部分。

你如何让两者成为同一个功能的一部分?或者我需要做些喜欢的事吗?我对如何做到这一点感到有些困惑。我不知道该怎么称呼这个问题。

1 个答案:

答案 0 :(得分:1)

旧方式:

componentDidMount: function () {
    var that = this;
    $(".whatever").on { 'click', function() {
        //that is the this of componentDidMount (and so of clickStuff)
        that.clickStuff();
        //this remains the same
        $(this).attr("title", that.state.titleMessage);
    });
}