关于react中map出来的input标签的取值问题

#1

如何正确获取到相同ref属性的input值

#2

你如果单单只是想获取到value值,可以直接

<input onChange={ (event)=>{ console.log(event.target.value) } } />

如果你真的很想要获取dom

{
    item.map( ( v , k )=>{
        <input ref={ ( (name)=>{ return ( ref )=>{ this[ name ] = ref ; }  } )( v.name ) } / >
    } )
}
#3

谢谢你的回复,不过您的那种写法,最终获取的是最后一次的input值,因为每个ref的值都相同,所以我正是要解决这个问题,不过现在问题已经解决了!还是很感谢哦

#4

v.name不一样,ref的值就不一样了。你的解决方案是什么?可以分享出来么

#5

我认真看了你的第二行代码,有点不明白后面的v.name;不过好像是行的通的

我的解决方法是让ref={‘input’ + k},这样的话可以分别获取

不过我们的方法原理是一样的

还是谢谢你哦,以后可以多多交流!!!

#6

v.name 是你的数组里面每个object的属性,你可以自己定制,目的就是为了区分每个object,类似key的东西。然后就是用闭包传递进去。客气了,你的k是index吧,递增的?确实差不多,解决就好。

#7

我还有个问题,不知道你能否帮忙看看,我的父组件里面有一个子组件,如下叫SelectInput

这个子组件里面的具体内容如下

我是想在父组件里获取到子组件内DOM元素,应该怎么实现呢?
谢谢!

#8

通过ref<SelectInput ref={(ele)=>{this.ele=ele}}> ;然后在父组件可以用this.ele拿到SelectInput组件了。你尝试自己打印this.ele试一下,应该明了了。