我正在使用React,Material-UI和lodash,但是render方法中的以下代码给我一个错误提示 “ TypeError:无法读取未定义的属性'selectPage'”:
tmppage = _.map(_.range(0, this.state.groupsdt.length), function (i) {
return (
<MenuItem >
<IconButton onClick={() => { {this.selectPage(i)} }}><WebAsset /></IconButton>
Page {i + 1}
</MenuItem>
)
});
我在构造函数(props)中定义了this.selectPage,如下所示:
constructor(props){
super(props);
this.state = {
loading: true,
modalopen: false,
menuopen: false,
urls:null,
groupsdt:null,
webkey:null,
currentpage:0,
currentBreakpoint: 'lg',
mounted: false,
layouts: {lg: null},
opentopublic:false,
};
this.addPage = this.addPage.bind(this);
this.selectPage = this.selectPage.bind(this);
this.addBox = this.addBox.bind(this);
this.removeBox = this.removeBox.bind(this);
this.doPost = this.doPost.bind(this);
this.doHome = this.doHome.bind(this);
}
请告诉我我想念的东西...,谢谢您。
答案 0 :(得分:0)
您的问题似乎是由于在function
的回调中使用map
关键字引起的,请改用箭头功能。您可以阅读有关箭头功能here的更多信息。
_.map(_.range(0, this.state.groupsdt.length), (i)=> {
....
});
答案 1 :(得分:0)
以上答案非常正确-您应将地图中的回调更改为箭头函数,以使此回调绑定到其词法作用域,这是您的类,并且具有 selectPage 属性