我什至不知道问题出在哪里,我唯一能想到的是由于使用.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>);
    }
});

最佳答案

尝试

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的范围可能正在该函数/事件内部更改。

关于javascript - 未捕获的TypeError:无法读取未定义的属性'_myPrivateFunction',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32616192/

10-13 00:21