关于react-native中FlatList的 this指向问题

本文记录了解决FlatList中TouchableOpacity的onPress事件报错的过程。错误原因为FlatList的renderItem没有正确的this指向。提供了两种解决方案:使用bind方法或箭头函数确保_this指向正确。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述:在使用 FlatList 制作列表过程中,其 renderItem 属性返回的是一个 TouchableOpacity 的按钮,但是在触发其点击事件onPress时,总是报错!

FlatList代码:

_renderItem渲染item的代码:

 

报错原因:

TouchableOpacity的onPress中使用了this,但他是不存在的,应用在FlatList的 renderItem 属性在调用 _renderItem 方法时并没有this指向。

解决方法1:  

        renderItem = {this._renderItem.bind(this)}

解决方法2:

        renderItem = {(item,index) => this._renderItem(item)}

===>>> 其余地方不变即可!

注意: renderItem = {this._renderItem}时默认传 一个解构出来的item(包括了item和separators两个Object 和index一个变量),所以在  _renderItem 方法中还需要解构一次才行!!!

 

文章仅为本人学习过程的一个记录,仅供参考,如有问题,欢迎指出

对博客文章的参考,若原文章博主介意,请联系删除!请原谅

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值