未捕获的TypeError:无法读取属性' _myPrivateFunction'未定义的

时间:2015-09-16 18:36:59

标签: javascript jquery backbone.js reactjs

我甚至不确定问题出在哪里,我唯一能想到的是因为使用.map() this在翻译中迷失了。我下面的内容是有效的,因为我总是希望在我开始尝试添加onClick之前,这给了我这篇文章主题中的错误。我需要一双眼睛来看看,告诉我在这里我做错了我做了什么。

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>);
    }
});

1 个答案:

答案 0 :(得分: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的范围可能在该功能/事件中发生变化。