关于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)//获取永远是最后一个元素

}

http://img.mukewang.com/szimg/5c6e60870001b7fc07660378.jpg

点击3,输出的却是最后一个元素

http://img.mukewang.com/szimg/5c6e60b00001f76325560550.jpg

这个问题跟ref不及时有关系吗?因为在这个方法我没有涉及setState,请问出现这种原因是为什么?

写回答

2回答

booTS

2019-02-25

看这个意思像是想要为每个动态生成的button添加一个ref,但是你每次都把当前button赋值给this.button,所以你每次点击时只能获取到最后一个button,看下可不可以在constructor初始化一个数组去保存这些button然后根据你的index去进行操作呢

0
1
JMYD
对的,就是这个意思。
2019-02-26
共1条回复

Dell

2019-02-21

this.button被循环反复赋值,最后保存的是最后一个元素

0
3
console_man
回复
Dell
没组织好语言,重新编辑
2019-03-27
共3条回复

React零基础入门到实战,完成企业级项目简书网站开发

主流新技术 React-redux,React-router4,贯穿基础语法

5275 学习 · 2496 问题

查看课程