Calll状态,以及Object.keys()中的类方法.map in render

时间:2016-09-09 07:11:24

标签: loops reactjs render react-jsx

我如何在渲染中调用循环内的函数和状态 -

    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

相同

1 个答案:

答案 0 :(得分:2)

在您的情况下,this未受约束且无法访问,因此要确保this绑定到您的组件,并且您可以调用您的函数,请使用arrow functions或{{3} }。

我更喜欢箭头功能,比如

<Input key={item} list={this.state.disableList} x={(() => this.getPosition)(item)} />

正如@Alexander T在评论中所提到的,以下是bind thisiteratormapforEach等等... {/ p}的方式>

Object.keys(this.state.valueList).map(function (item) { .... }, this)