我如何在渲染中调用循环内的函数和状态 -
render(){
return(
<div
{Object.keys(this.state.valueList).map(function (item) {
return(
<Input key={item} list={this.state.disableList} x={this.getPosition(item)} />
)
})}
</div>
}
getPosition(value){
.......
}
仍然出现错误
TypeError:无法读取未定义的属性“getPosition”
与this.state.disableList
答案 0 :(得分:2)
在您的情况下,this
未受约束且无法访问,因此要确保this
绑定到您的组件,并且您可以调用您的函数,请使用arrow functions或{{3} }。
我更喜欢箭头功能,比如
<Input key={item} list={this.state.disableList} x={(() => this.getPosition)(item)} />
正如@Alexander T在评论中所提到的,以下是bind this
与iterator
(map
,forEach
等等... {/ p}的方式>
Object.keys(this.state.valueList).map(function (item) { .... }, this)