我有这样的代码:
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”
请告诉我如何访问元素中的键
答案 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')
}
我觉得这不是您想要的。您是否要找出密钥,以便知道存储中要更新的内容?您想在这里完成什么?