关于ref获取元素不准确问题
来源:4-7 React 中 ref 的使用
JMYD
2019-02-21
let itemList = this.props.content
return itemList.map((item, index) => {
return (
<li key = {index} >{this.props.test}{item}
<button ref = {(button)=>{this.button=button}} data-index={index} onClick = {this.handleClickDelete} > 删除</button></li > )//点击这个按钮
})
handleClickDelete(){
let getIndex = this.button.getAttribute('data-index');
console.log(this.button)//获取永远是最后一个元素
}
点击3,输出的却是最后一个元素
这个问题跟ref不及时有关系吗?因为在这个方法我没有涉及setState,请问出现这种原因是为什么?
写回答
2回答
-
看这个意思像是想要为每个动态生成的button添加一个ref,但是你每次都把当前button赋值给this.button,所以你每次点击时只能获取到最后一个button,看下可不可以在constructor初始化一个数组去保存这些button然后根据你的index去进行操作呢
012019-02-26 -
Dell
2019-02-21
this.button被循环反复赋值,最后保存的是最后一个元素
032019-03-27
相似问题