react-native 实现购物车滑动删除效果的示例代码


Posted in Javascript onJanuary 15, 2021

购物车的功能基本上电商项目都会有的,这是一篇关于react-native的,原生android的已经好久没写了。记得以前写原生购物车的时候,遇到过产品的灵魂质问,为啥iOS的滑动删除可以,android却那么难实现的。这个时候,我就打开微信说,android的微信版也是长按进行操作,iOS的是滑动操作的,两个平台自带的系统交互操作是不一样的。当然,最后还是默默的找各种三方库去进行滑动删除。

rn的项目也是找的网上的一个三方库进行列表滑动操作的,github地址react-native-swipe-list-view

最基本的使用方法和flatList差不多,data 属性数组数据源,renderItem 从data中挨个取出数据并渲染到列表中

<SwipeListView
  data={this.state.listViewData}
  renderItem={this.renderItem}
  keyExtractor={this.keyExtractor}
/>

这时候是不可以左右滑动的,就跟普通的flatList效果一样。加上renderHiddenItem属性,可以左右滑动。renderHiddenItem渲染的就是隐藏的内容,隐藏的内容位置是通过flex布局来控制,下面这个例子使用横向布局,通过space-between将内容控制在左右两边,形成了左右滑动时出现隐藏内容。

//这是左右都可以滑动的
renderHiddenItem = (data, rowMap) => {
  return <View style={{
    flex: 1,
    flexDirection: 'row',
    justifyContent: 'space-between'
  }}>
    <Text>Left</Text>
    <Text>Right</Text>
  </View>
}

我们这边只需要可以左滑,通过justifyContent: 'flex-end'属性将删除按钮内容置于最右边,同时设置SwipeListView的属性disableRightSwipe来禁止右滑操作。

renderHiddenItem = (data, rowMap) => {
  return <View style={{
    flex: 1,
    flexDirection: 'row',
    justifyContent: 'flex-end',
  }}>
    <TouchableOpacity style={{
      backgroundColor: '#FF496C',
      width: 80,
      justifyContent: 'center',
      alignItems: 'center'
    }}>
      <Text style={{color:'#fff'}}>删除</Text>
    </TouchableOpacity>
  </View>
}

这个时候向左滑,可以看到右边的删除按钮出来了,但是没有一直处于打开状态,还需要添加rightOpenValue={-80}属性,使其处于打开状态。

<SwipeListView
  disableRightSwipe
  data={this.state.listViewData}
  renderItem={this.renderItem}
  keyExtractor={this.keyExtractor}
  renderHiddenItem={this.renderHiddenItem}
  rightOpenValue={-80}
/>

另外有一个需要注意的是,renderItem进行列表渲染时,最外层的视图,官方推荐使用可点击响应触摸的,而不是<View/>,正常情况是,打开了一个视图,点其他视图,默认会关闭打开的那一项,如果最外层是<View/>则不会有这种效果。

//最外层是 TouchableHighlight
renderItem = ({item, index}, rowMap) => {
  return <TouchableHighlight
    onPress={() => {
    }}
    underlayColor={'#fff'}>
    ...
  </TouchableHighlight>
}

至此,滑动删除的效果已经基本满足了,后续就是业务逻辑,增删操作数据源刷新页面了。

react-native 实现购物车滑动删除效果的示例代码

到此这篇关于react-native 实现购物车滑动删除效果的示例代码的文章就介绍到这了,更多相关react-native 滑动删除内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
各浏览器对link标签onload/onreadystatechange事件支持的差异分析
Apr 27 Javascript
实例分析javascript中的call()和apply()方法
Nov 28 Javascript
jquery实现红色竖向多级向右展开的导航菜单效果
Aug 31 Javascript
完美解决jQuery符号$与其他javascript 库、框架冲突的问题
Aug 09 Javascript
原生js实现addclass,removeclass,toggleclasss实例
Nov 24 Javascript
jQuery拖拽通过八个点改变div大小
Nov 29 Javascript
jQuery文字轮播特效
Feb 12 Javascript
jquery中关于bind()方法的使用技巧分享
Mar 30 jQuery
用JavaScript做简易的购物车的代码示例
Oct 20 Javascript
JavaScript模拟实现自由落体效果
Aug 28 Javascript
详解微信小程序开发用户授权登陆
Apr 24 Javascript
layui 数据表格 根据值(1=业务,2=机构)显示中文名称示例
Oct 26 Javascript
vue element el-transfer增加拖拽功能
Jan 15 #Vue.js
关于uniApp editor微信滑动问题
Jan 15 #Javascript
关于javascript中的promise的用法和注意事项(推荐)
Jan 15 #Javascript
详解node.js创建一个web服务器(Server)的详细步骤
Jan 15 #Javascript
JavaScript中展开运算符及应用的实例代码
Jan 14 #Javascript
js中延迟加载和预加载的具体使用
Jan 14 #Javascript
JS中箭头函数与this的写法和理解
Jan 14 #Javascript
You might like
php存储过程调用实例代码
2013/02/03 PHP
zeroclipboard复制到剪切板的flash
2010/08/04 Javascript
js中的cookie的读写操作示例详解
2014/04/17 Javascript
Node.js异步I/O学习笔记
2014/11/04 Javascript
基于JavaScript实现定时跳转到指定页面
2016/01/01 Javascript
javascript正则表达式定义(语法)总结
2016/01/08 Javascript
jQuery+canvas实现简单的球体斜抛及颜色动态变换效果
2016/01/28 Javascript
JavaScript模版引擎的基本实现方法浅析
2016/02/15 Javascript
three.js中3D视野的缩放实现代码
2017/11/16 Javascript
解读ES6中class关键字
2017/11/20 Javascript
关于vue面试题汇总
2018/03/20 Javascript
Node.js系列之发起get/post请求(2)
2019/08/30 Javascript
vue router 传参获取不到的解决方式
2019/11/13 Javascript
Javascript模拟实现new原理解析
2020/03/03 Javascript
[00:32]2018DOTA2亚洲邀请赛Mineski出场
2018/04/04 DOTA
python人人网登录应用实例
2014/09/26 Python
django框架CSRF防护原理与用法分析
2019/07/22 Python
Apache部署Django项目图文详解
2019/07/30 Python
Python tensorflow实现mnist手写数字识别示例【非卷积与卷积实现】
2019/12/19 Python
Python如何通过Flask-Mail发送电子邮件
2020/01/29 Python
Tensorflow中的图(tf.Graph)和会话(tf.Session)的实现
2020/04/22 Python
Python包和模块的分发详细介绍
2020/06/19 Python
Python爬虫之Selenium下拉框处理的实现
2020/12/04 Python
美国钻石商店:Zales
2016/11/20 全球购物
德国知名健康零食网上商店:Seeberger
2017/07/27 全球购物
俄语地区最大的中国商品在线购物网站之一:Umka Mall
2019/11/03 全球购物
上班看电影检讨书
2014/02/12 职场文书
投标担保书范文
2014/04/02 职场文书
作文评语大全
2014/04/23 职场文书
医学生求职自荐书
2014/06/12 职场文书
镇政府副镇长群众路线专题民主生活会对照检查材料
2014/09/19 职场文书
2014年小学英语教师工作总
2014/12/03 职场文书
2015教师年度工作总结范文
2015/04/07 职场文书
幼儿园教师培训心得体会
2016/01/21 职场文书
JavaScript实现贪吃蛇游戏
2021/06/16 Javascript
Java9新特性之Module模块化编程示例演绎
2022/03/16 Java/Android