2015-09-16 145 views
1

我甚至不知道問題出在哪裏,我能想到的唯一原因是由於使用.map()this在翻譯中迷了路。我在下面的工作,因爲我可以總體上希望,直到我開始嘗試添加onClick,這給了我在這篇文章的主題中的錯誤。我需要一雙眼睛來看看,並告訴我我在這裏犯了什麼錯誤。Uncaught TypeError:無法讀取未定義的屬性'_myPrivateFunction'

var myApp = React.createClass({ 
    mixins: [Backbone.React.Component.mixin], 
    _myPrivateFunction: function (objId) { 
     console.log(objId); 
    }, 
    render: function() { 
     return (<ul className="list-group"> 
      {this.state.collection.map(function (system) { 
       return (<li className="list-group-item" onClick={this._myPrivateFunction.bind(this, system.objId)}>{system.objName}</li>); 
      })} 
     </ul>); 
    } 
}); 

回答

0

嘗試

var myApp = React.createClass({ 
    mixins: [Backbone.React.Component.mixin], 
    _myPrivateFunction: function (objId) { 
     console.log(objId); 
    }, 
    render: function() { 
     var that = this; 

     return (<ul className="list-group"> 
      {this.state.collection.map(function (system) { 
       return (<li className="list-group-item" onClick={that._myPrivateFunction.bind(that, system.objId)}>{system.objName}</li>); 
      })} 
     </ul>); 
    } 
}); 

this範圍可能是函數/事件中發生變化。

相關問題