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 相关文章推荐
js 多浏览器分别判断代码
Apr 01 Javascript
25个非常棒的jQuery滑块插件和教程小结
Sep 02 Javascript
javascript创建和存储cookie示例
Jan 07 Javascript
jquery等待效果示例
May 01 Javascript
jquery关于事件冒泡和事件委托的技巧及阻止与允许事件冒泡的三种实现方法
Nov 27 Javascript
javascript实现自动填写表单实例简析
Dec 02 Javascript
AngularJS实现全选反选功能
Dec 08 Javascript
js滑动提示效果代码分享
Mar 10 Javascript
angular 基于ng-messages的表单验证实例
May 04 Javascript
详解Javascript中new()到底做了些什么?
Mar 29 Javascript
Node.js Koa2使用JWT进行鉴权的方法示例
Aug 17 Javascript
JavaScript实现弹出窗口效果
Dec 09 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
一个程序下载的管理程序(四)
2006/10/09 PHP
简单的过滤字符串中的HTML标记
2006/12/25 PHP
php中文字母数字验证码实现代码
2008/04/25 PHP
Ajax实时验证用户名/邮箱等是否已经存在的代码打包
2011/12/01 PHP
smarty循环嵌套用法示例分析
2016/07/19 PHP
Laravel路由研究之domain解决多域名问题的方法示例
2019/04/04 PHP
用javascript将数据库中的TEXT类型数据动态赋值到TEXTAREA中
2007/04/20 Javascript
use jscript List Installed Software
2007/06/11 Javascript
js中return false(阻止)的用法
2013/08/14 Javascript
JavaScript实现格式化字符串函数String.format
2016/12/16 Javascript
JS实现DIV高度自适应窗口示例
2017/02/16 Javascript
Nuxt升级2.0.0时出现的问题(小结)
2018/10/08 Javascript
vue使用@scroll监听滚动事件时,@scroll无效问题的解决方法详解
2019/10/15 Javascript
Vue实现手机扫描二维码预览页面效果
2020/05/28 Javascript
JavaScript日期库date-fn.js使用方法解析
2020/09/09 Javascript
vue-cli 关闭热更新操作
2020/09/18 Javascript
JavaScript实现滚动加载更多
2020/12/27 Javascript
[54:28]EG vs OG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
python定时利用QQ邮件发送天气预报的实例
2017/11/17 Python
python导入不同目录下的自定义模块过程解析
2019/11/18 Python
Django 解决上传文件时,request.FILES为空的问题
2020/05/20 Python
canvas粒子动画背景的实现示例
2018/09/03 HTML / CSS
世界上最大的铁人三项商店:Tri UK
2020/11/04 全球购物
会计自荐书
2013/12/02 职场文书
聚美优品陈欧广告词
2014/03/14 职场文书
项目合作意向书范本
2014/04/01 职场文书
旅行社优秀创业计划书
2014/08/16 职场文书
邮政竞聘演讲稿
2014/09/03 职场文书
物理分数没达标检讨书
2014/09/13 职场文书
幼儿园教师求职信
2015/03/20 职场文书
2015年体育部工作总结
2015/04/02 职场文书
地心历险记观后感
2015/06/15 职场文书
公司仓库管理制度
2015/08/04 职场文书
勤俭节约主题班会
2015/08/13 职场文书
2016年大学生社会实践心得体会
2015/10/09 职场文书
根德5570型九灯四波段立体声收音机是电子管收音机的楷模 ? 再论5570
2022/04/05 无线电