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 相关文章推荐
JAVASCRIPT下判断IE与FF的比较简单的方式
Oct 17 Javascript
jQuery学习7 操作JavaScript对象和集合的函数
Feb 07 Javascript
关于JavaScript定义类和对象的几种方式
Nov 09 Javascript
Jquery知识点三 jquery表单对象操作
Jan 17 Javascript
js网页中的(运行代码)功能实现思路
Feb 04 Javascript
Javascript 中 null、NaN和undefined的区别总结
Apr 10 Javascript
node.js中的http.response.removeHeader方法使用说明
Dec 14 Javascript
深入理解JavaScript系列(43):设计模式之状态模式详解
Mar 04 Javascript
JavaScript中SetInterval与setTimeout的用法详解
Nov 10 Javascript
详解vue.js2.0父组件点击触发子组件方法
May 10 Javascript
vuex分模块后,实现获取state的值
Jul 26 Javascript
解决idea开发遇到javascript动态添加html元素时中文乱码的问题
Sep 29 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中对数据库操作的封装
2006/10/09 PHP
PHP中array_merge和array相加的区别分析
2013/06/17 PHP
js代码实现微博导航栏
2015/07/30 PHP
PHP实现的redis主从数据库状态检测功能示例
2017/07/20 PHP
JS拖拽插件实现步骤
2015/08/03 Javascript
JS实现无限级网页折叠菜单(类似树形菜单)效果代码
2015/09/17 Javascript
jquery.validate 自定义验证方法及validate相关参数
2016/01/18 Javascript
javascript实现数字倒计时特效
2016/03/30 Javascript
BootStrap 智能表单实战系列(五) 表单依赖插件处理
2016/06/13 Javascript
JS动态计算移动端rem的解决方案
2016/10/14 Javascript
JS Select下拉框(支持输入模糊查询)
2017/02/04 Javascript
NodeJS配置HTTPS服务实例分享
2017/02/19 NodeJs
H5实现中奖记录逐行滚动切换效果
2017/03/13 Javascript
作为老司机使用 React 总结的 11 个经验教训
2017/04/08 Javascript
vuejs父子组件之间数据交互详解
2017/08/09 Javascript
Vux+Axios拦截器增加loading的问题及实现方法
2018/11/08 Javascript
layui监听select变化,以及设置radio选中的方法
2019/09/24 Javascript
mpvue实现小程序签到金币掉落动画(api实现)
2019/10/17 Javascript
vue项目配置使用flow类型检查的步骤
2020/03/18 Javascript
js实现随机抽奖
2020/03/19 Javascript
[53:36]Liquid vs VP Supermajor决赛 BO 第三场 6.10
2018/07/05 DOTA
Python新手在作用域方面经常容易碰到的问题
2015/04/03 Python
在Python的Django框架中生成CSV文件的方法
2015/07/22 Python
python机器学习实战之最近邻kNN分类器
2017/12/20 Python
详解python中的线程
2018/02/10 Python
解读python logging模块的使用方法
2018/04/17 Python
django开发post接口简单案例,获取参数值的方法
2018/12/11 Python
python实现时间序列自相关图(acf)、偏自相关图(pacf)教程
2020/06/03 Python
Python 私有属性和私有方法应用场景分析
2020/06/19 Python
Python Django路径配置实现过程解析
2020/11/05 Python
使用CSS3 制作一个material-design 风格登录界面实例
2016/12/12 HTML / CSS
电子商务个人自荐信
2013/12/12 职场文书
财务人员求职自荐书范文
2014/02/10 职场文书
上班迟到检讨书
2014/09/15 职场文书
工厂仓库管理员岗位职责
2015/04/09 职场文书
PyTorch的Debug指南
2021/05/07 Python