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 相关文章推荐
jQuery 1.2.x 升? 1.3.x 注意事项
May 06 Javascript
jquery 输入框数字限制插件
Nov 10 Javascript
javascript与CSS复习(《精通javascript》)
Jun 29 Javascript
简介JavaScript中Math.LOG10E属性的使用
Jun 14 Javascript
jQuery实现图片与文字描述左右滑动自动切换的方法
Jul 27 Javascript
Javascript 调用 ActionScript 的简单方法
Sep 22 Javascript
jQuery排序插件tableSorter使用方法
Feb 10 Javascript
Bootstrap Table实现定时刷新数据的方法
Aug 13 Javascript
详解如何在webpack中做预渲染降低首屏空白时间
Aug 22 Javascript
微信小程序多列表渲染数据开关互不影响的实现
Jun 05 Javascript
Vue实现指令式动态追加小球动画组件的步骤
Dec 18 Vue.js
vue keep-alive的简单总结
Jan 25 Vue.js
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 download.php实现代码 跳转到下载文件(response.redirect)
2009/08/26 PHP
供参考的 php 学习提高路线分享
2011/10/23 PHP
解析Extjs与php数据交互(增删查改)
2013/06/25 PHP
ThinkPHP的MVC开发机制实例解析
2014/08/23 PHP
PHP将URL转换成短网址的算法分享
2016/09/13 PHP
thinkPHP简单导入和使用阿里云OSSsdk的方法
2017/03/15 PHP
浅谈Yii乐观锁的使用及原理
2017/07/25 PHP
PHP应用跨时区功能的实现方法
2019/03/21 PHP
javascript 词法作用域和闭包分析说明
2010/08/12 Javascript
jQuery之折叠面板的深入解析
2013/06/19 Javascript
将Datatable转化成json发送前台实现思路
2013/09/06 Javascript
解析页面加载与js函数的执行 onload or ready
2013/12/12 Javascript
jQuery实现鼠标滑过Div层背景变颜色的方法
2015/02/17 Javascript
js实现交换运动效果的方法
2015/04/10 Javascript
原生JS实现美图瀑布流布局赏析
2015/09/07 Javascript
基于JavaScript怎么实现让歌词滚动播放
2015/11/03 Javascript
JS当前页面登录注册框,固定DIV,底层阴影的实例代码
2016/09/29 Javascript
移动端滑动插件Swipe教程
2016/10/16 Javascript
Bootstrap Table从零开始
2017/06/30 Javascript
vue实现手机号码抽奖上下滚动动画示例
2017/10/18 Javascript
详解Angular路由之路由守卫
2018/05/10 Javascript
详解基于webpack&amp;gettext的前端多语言方案
2019/01/29 Javascript
使用mixins实现elementUI表单全局验证的解决方法
2019/04/02 Javascript
小程序按钮避免多次调用接口和点击方案实现(不用showLoading)
2020/04/15 Javascript
JQuery通过键盘控制键盘按下与松开触发事件
2020/08/07 jQuery
解决vue中使用less/sass及使用中遇到无效的问题
2020/10/24 Javascript
[03:59]第二届DOTA2亚洲邀请赛选手传记-VGJ.rOtk
2017/04/03 DOTA
python一键升级所有pip package的方法
2017/01/16 Python
python通过txt文件批量安装依赖包的实现步骤
2019/08/13 Python
基于Numba提高python运行效率过程解析
2020/03/02 Python
通过实例解析Python RPC实现原理及方法
2020/07/07 Python
大学生表扬信范文
2014/01/09 职场文书
《雨点儿》教学反思
2014/04/14 职场文书
2014年高三班主任工作总结
2014/12/05 职场文书
财务工作失误检讨书
2015/02/19 职场文书
2015年党风廉政建设个人总结
2015/08/18 职场文书