我如何获得对密钥的反应?

时间:2018-07-14 18:29:05

标签: javascript reactjs react-redux

我有这样的代码:

counter = 0,
this.props.array.map((obj)=>{
    counter++
    return(
        <input key={counter} type="number" min={0} defaultValue={obj.quantity} onChange={(e)=>{this.changing(key, counter)}}/>
    )
})
changing = (value, key)=>{
    console.log(key + ' changed')
}

如您所见,我在不好的地方使用了“键”,这根本不起作用

如果我使用“ counter”而不是“ key”,它总是返回最新的“ counter”

请告诉我如何访问元素中的键

1 个答案:

答案 0 :(得分:1)

您应在映射时使用数组中的索引。不存储计数器

this.props.array.map( (obj, idx)=>{
    return(
        <input key={idx} type="number" min={0} defaultValue={obj.quantity} onChange={this.changing.bind(null, idx)}}/>
    )
})
// notice i changed your handler for change. You should use `.bind` not an inline arrow as its not as performant as `.bind`

changing = (key) => {
    console.log(key + ' changed')
}

我觉得这不是您想要的。您是否要找出密钥,以便知道存储中要更新的内容?您想在这里完成什么?