React Native利用ScrollableTabView实现Tab+ViewPager效果

本文介绍了如何在React Native中使用ScrollableTabView和FlatList创建Tab+ViewPager效果,并实现点击FlatList条目跳转到新界面。重点在于处理FlatList的点击事件和利用Navigation进行页面跳转。
摘要由CSDN通过智能技术生成
效果图:

这里写图片描述

参考这篇文章(http://www.jianshu.com/p/b7788c3d106e)实现了简单的Tab+ViewPager效果。然后将里面的Text改为FlatList来显示更多数据。接着我想点击里面的数据跳转到另一个界面。但是没有找到FlatList 的点击回调函数,找了找资料才发现,不像Android里的控件有onClick方法,React Native里需要在要实现点击相应的控件外面加上”Touchable”开头的一系列组件来实现的。http://reactnative.cn/docs/0.47/handling-touches.html#content

例如:

class MyButton extends Component {
   
  _onPressButton() {
    console.log("You tapped the button!");
  }

  render() {
    return (
      <TouchableHighlight onPress={
  this._onPressButton}>
        <Text>Button</Text>
      </TouchableHighlight>
    );
  }
}

在FlatList里的Text外加入Touchable标签后(只需关注Touchable里的)

<FlatList
          data={[
            {
  key: 'Devin'},
            {
  key: 'Jackson'},
            {
  key: 'James'},
            {
  key: 'Joel'},
            {
  key: 'John'},
            {
  key: 'Jillian'},
            {
  key: 'Jimmy'},
            {
  key: 'Julie'},
          ]}
          renderItem={
  ({item}) => 

          <TouchableNativeFeedback
              onPress = {
  this.onPress}>
               <Text style={styles.item}>{item.key}</Text>
          </TouchableNativeFeedback>
          }
        />
        。。。

        onPress(){
        。。。
        }

这样可以相应点击事件了,但是还需要知道点击的是哪个item的Text,需要把item传递给onPress(),我以为只需修改两行代码

    。。。
    onPress = {this.onPress(item)}>
    。。。
    onPress(item){
    。。。
    }

就可以了,实际上是不行的,React Native里传递参数是这样写的

    。。。
    onPress = {
  this.onPress.bind(this,item)}>
    。。。
    onPress(item){
    。。。
    }

然后把FlatList封装一下,命名为MyFlatList

class MyFlatList 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值