Javascript`this`-包含对象的引用
我正在使用Javascript和React构建前端。我不确定如何引用包含对象的方法:Javascript`this`-包含对象的引用,javascript,reactjs,Javascript,Reactjs,我正在使用Javascript和React构建前端。我不确定如何引用包含对象的方法: var RAttribute = React.createClass({ loadAssignmentsForList: function(elem) { //other code }, render: function() { var assignmentsLo
var RAttribute = React.createClass({
loadAssignmentsForList: function(elem) {
//other code
},
render: function() {
var assignmentsLoading = this.props.assignmentsLoading;
var lists = this.props.data.lists.map(function(elem) {
return (<li className='list-group-item grey'>
<div className='list-group'>
<RList key = {elem.name} data={elem}
assignmentsLoading={assignmentsLoading}
loadAssignmentsForList={this.loadAssignmentsForList(elem)}/>
</div>
</li>);
});
//other code
}
//other code
});
将
.this
绑定到.map
,中的this
。map
不引用RAttribute
对象
var lists = this.props.data.lists.map(function(elem) {
// your code
}.bind(this));
或者您可以通过第二个参数将this
设置为.map
,如下所示
var lists = this.props.data.lists.map(function(elem) {
// your code
}, this);
此外,如果您使用的是ES6
,则可以使用
你在传送ES6吗?如果是这样,您可以使用箭头函数。这实际上取决于您的设置,这些设置应该根据您提供的代码工作,一定是我们在那里看不到的,尽管我的理解是React应该自动绑定
此
在呈现
方法中您的代码工作您可以提供更多的代码吗?我提供了更多的代码。该错误实际上出现在map
方法中。
var lists = this.props.data.lists.map(function(elem) {
// your code
}, this);
var lists = this.props.data.lists.map((elem) => {
// your code
});