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 相关文章推荐
返回顶部按钮响应滚动且动态显示与隐藏
Oct 14 Javascript
js实现登陆遮罩效果的方法
Jul 28 Javascript
jQuery实现Tab选项卡切换效果简单演示
Nov 23 Javascript
javascript学习小结之prototype
Dec 03 Javascript
实例详解jQuery Mockjax 插件模拟 Ajax 请求
Jan 12 Javascript
JavaScript实现点击按钮字体放大、缩小
Feb 29 Javascript
再谈Javascript中的基本类型和引用类型(推荐)
Jul 01 Javascript
VUE实现日历组件功能
Mar 13 Javascript
js实现图片加载淡入淡出效果
Apr 07 Javascript
Node.js+ES6+dropload.js实现移动端下拉加载实例
Jun 01 Javascript
使用canvas进行图像编辑的实例
Aug 29 Javascript
微信小程序登录换取token的教程
May 31 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
QueryPath PHP 中的jQuery
2010/04/11 PHP
php另类上传图片的方法(PHP用Socket上传图片)
2013/10/30 PHP
Javascript typeof 用法
2008/12/28 Javascript
JSON.stringify 语法实例讲解
2012/03/14 Javascript
js打开新窗口方法整理
2014/02/17 Javascript
jquery制作搜狐快站页面效果示例分享
2014/02/21 Javascript
jQuery获取节点和子节点文本的方法
2014/07/22 Javascript
JavaScript中九种常用排序算法
2014/09/02 Javascript
js窗口关闭提示信息(兼容IE和firefox)
2015/10/23 Javascript
JavaScript Math 对象常用方法总结
2016/04/28 Javascript
JS中检测数据类型的几种方式及优缺点小结
2016/12/12 Javascript
React 子组件向父组件传值的方法
2017/07/24 Javascript
JavaScript之创意时钟项目(实例讲解)
2017/10/23 Javascript
JavaScript 日期时间选择器一些小结
2018/04/02 Javascript
JavaScript高级函数应用之分时函数实例分析
2018/08/03 Javascript
小程序文字跑马灯效果
2018/12/28 Javascript
nodeJs的安装与npm全局环境变量的配置详解
2020/01/06 NodeJs
Vue实现todo应用的示例
2021/02/20 Vue.js
跟老齐学Python之使用Python查询更新数据库
2014/11/25 Python
Centos5.x下升级python到python2.7版本教程
2015/02/14 Python
python web基础之加载静态文件实例
2018/03/20 Python
dataframe设置两个条件取值的实例
2018/04/12 Python
windows下安装Python的XlsxWriter模块方法
2018/05/03 Python
python3结合openpyxl库实现excel操作的实例代码
2018/09/11 Python
pycharm打开命令行或Terminal的方法
2019/01/16 Python
使用python客户端访问impala的操作方式
2020/03/28 Python
Python连接Hadoop数据中遇到的各种坑(汇总)
2020/04/14 Python
Otticanet意大利:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/03/10 全球购物
屈臣氏俄罗斯在线商店:Watsons俄罗斯
2020/08/03 全球购物
XML文档面试题
2015/08/05 面试题
工作证明范本(2篇)
2014/09/14 职场文书
结婚保证书
2015/01/16 职场文书
董事长秘书工作总结
2015/08/14 职场文书
Promise面试题详解之控制并发
2021/05/14 面试题
MongoDB数据库的安装步骤
2021/06/18 MongoDB
Python数组变形的几种实现方法
2022/05/30 Python