React Native新手求助:如何获取组件的key值?
获取React Native组件的key值解决方案
嘿,刚上手React Native遇到这个问题太正常啦~先给你划个重点:React的key属性是专门给React内部做列表渲染优化用的,组件的props里并不会包含key,所以没法直接通过this.props.key拿到它。不过我们有几个简单靠谱的办法能在点击方法里获取到这个值:
方法一:绑定事件时直接传递key参数
这是最常用也最直观的方式,在bind的时候把text(也就是你的key值)作为参数传进去:
<TouchableOpacity key={text} onPress={this.Click.bind(this, text)}> {/* 这里放你的组件内容,比如<Text>{text}</Text> */} </TouchableOpacity>
然后你的Click方法就可以直接接收这个参数:
Click = (keyValue) => { console.log('拿到的key值是:', keyValue); // 这里写你需要的逻辑处理 }
方法二:使用箭头函数传递参数
如果你更喜欢箭头函数的写法,也可以这么写:
<TouchableOpacity key={text} onPress={() => this.Click(text)}> {/* 组件内容 */} </TouchableOpacity>
Click方法和上面的写法完全一样。不过要提个小注意:如果这个TouchableOpacity是在列表(比如map循环)里渲染的,箭头函数会导致每次渲染都创建新的函数实例,数据量小的时候没啥影响,但数据量大的话可能有轻微性能损耗,这种情况更推荐用方法一。
额外提醒
别想着通过event.target或者组件实例去拿key哦,React不会把key暴露给组件的props或者DOM元素属性,它只是React内部用来识别组件的标识~
内容的提问来源于stack exchange,提问作者praj
相关产品推荐
相关产品推荐

