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 相关文章推荐
json跟xml的对比分析
Jun 10 Javascript
html dom节点操作(获取/修改/添加或删除)
Jan 23 Javascript
使用原生js写的一个简单slider
Apr 29 Javascript
单击某一段文字改写文本颜色
Jun 06 Javascript
JS实现网站菜单拖拽移位效果的方法
Sep 24 Javascript
JavaScript:Array类型全面解析
May 19 Javascript
基于HTML5上使用iScroll实现下拉刷新,上拉加载更多
May 21 Javascript
JS实现兼容各种浏览器的高级拖动方法完整实例【测试可用】
Jun 21 Javascript
vue2.0 中使用transition实现动画效果使用心得
Aug 13 Javascript
Vue插槽原理与用法详解
Mar 05 Javascript
Vue项目引发的「过滤器」使用教程
Mar 12 Javascript
jquery实现掷骰子小游戏
Oct 24 jQuery
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入门学习知识点三 PHP上传
2011/07/14 PHP
apache和php之间协同工作的配置经验分享
2013/04/08 PHP
PHP FATAL ERROR: CALL TO UNDEFINED FUNCTION BCMUL()解决办法
2014/05/04 PHP
php实现字符串首字母大写和单词首字母大写的方法
2015/03/14 PHP
php示例详解Constructor Prototype Pattern 原型模式
2015/10/15 PHP
ThinkPHP 3.2.2实现事务操作的方法
2017/05/05 PHP
php把字符串指定字符分割成数组的方法
2018/03/12 PHP
php微信公众号开发之音乐信息
2018/10/20 PHP
laravel unique验证、确认密码confirmed验证以及密码修改验证的方法
2019/10/16 PHP
文本框根据输入内容自适应高度的代码
2011/10/24 Javascript
jquery实现的图片点击滚动效果
2014/04/29 Javascript
JavaScript实现的in_array函数
2014/08/27 Javascript
javascript实现表格排序 编辑 拖拽 缩放
2015/01/02 Javascript
jQuery中contents()方法用法实例
2015/01/08 Javascript
JQuery插件ajaxfileupload.js异步上传文件实例
2015/05/19 Javascript
js正则表达式中exec用法实例
2015/07/23 Javascript
简介BootStrap model弹出框的使用
2016/04/27 Javascript
JS实现动态添加DOM节点和事件的方法示例
2017/04/28 Javascript
利用JavaScript如何查询某个值是否数组内
2017/07/30 Javascript
微信小程序实现点击按钮修改文字大小功能【附demo源码下载】
2017/12/06 Javascript
Python实现的简单万年历例子分享
2014/04/25 Python
实例探究Python以并发方式编写高性能端口扫描器的方法
2016/06/14 Python
Python 使用PIL中的resize进行缩放的实例讲解
2018/08/03 Python
Django model select的多种用法详解
2019/07/16 Python
春节到了 教你使用python来抢票回家
2020/01/06 Python
Django ForeignKey与数据库的FOREIGN KEY约束详解
2020/05/20 Python
python链表类中获取元素实例方法
2021/02/23 Python
澳大利亚家具商店:Freedom
2020/12/17 全球购物
大学生毕业的自我鉴定
2013/11/13 职场文书
银行门卫岗位职责
2013/12/29 职场文书
六十岁生日答谢词
2014/01/10 职场文书
竞选大队长演讲稿
2014/04/29 职场文书
领导干部查摆“四风”问题自我剖析材料思想汇报
2014/10/05 职场文书
事业单位个人总结
2015/02/12 职场文书
使用Bandicam录制鼠标指针并附带点击声音,还可以添加点击动画效果
2022/04/11 数码科技
Python绘制散点图之可视化神器pyecharts
2022/07/07 Python