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中字符替换函数String.replace()使用技巧
Aug 14 Javascript
SuperSlide2实现图片滚动特效
Jun 20 Javascript
jQuery DOM删除节点操作指南
Mar 03 Javascript
基于jquery实现放大镜效果
Aug 17 Javascript
深入浅析react native es6语法
Dec 09 Javascript
JavaScript常用判断写法大全(推荐)
May 30 Javascript
vue-cli+webpack在生成的项目中使用bootstrap实例代码
May 26 Javascript
jQuery封装placeholder效果实现方法,让低版本浏览器支持该效果
Jul 08 jQuery
浅谈vue+webpack项目调试方法步骤
Sep 11 Javascript
使用RxJS更优雅地进行定时请求详析
Jun 02 Javascript
javascript随机变色实例代码
Oct 15 Javascript
如何在Vue中抽离接口配置文件
Oct 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
使用PHP会话(Session)实现用户登陆功能
2013/06/29 PHP
使用PHP把HTML生成PDF文件的几个开源项目介绍
2014/11/17 PHP
关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题
2015/12/21 PHP
Yii2框架中日志的使用方法分析
2017/05/22 PHP
Laravel中Facade的加载过程与原理详解
2017/09/22 PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
2020/04/05 PHP
Jquery 学习笔记(一)
2009/10/13 Javascript
判断iframe里的页面是否加载完成
2014/06/06 Javascript
js与css实现弹出层覆盖整个页面的方法
2014/12/13 Javascript
javascript中var的重要性分析
2015/02/11 Javascript
jQuery实现平滑滚动到指定锚点的方法
2015/03/20 Javascript
AngularJS入门教程之Select(选择框)详解
2016/07/27 Javascript
jquery网页加载进度条的实现
2017/06/01 jQuery
bootstrap switch开关组件使用方法详解
2017/08/22 Javascript
搭建vue开发环境
2018/07/19 Javascript
webpack4 optimization使用总结
2019/11/10 Javascript
webpack5 联邦模块介绍详解
2020/07/08 Javascript
Django入门使用示例
2017/12/12 Python
Python爬虫框架Scrapy常用命令总结
2018/07/26 Python
Python内存管理实例分析
2019/07/10 Python
python代码打印100-999之间的回文数示例
2019/11/24 Python
window环境pip切换国内源(pip安装异常缓慢的问题)
2019/12/31 Python
python 装饰器的实际作用有哪些
2020/09/07 Python
python归并排序算法过程实例讲解
2020/11/04 Python
Django模板报TemplateDoesNotExist异常(亲测可行)
2020/12/18 Python
详解css position 5种不同的值的用法
2019/07/30 HTML / CSS
css3中仿放大镜效果的几种方式原理解析
2020/12/03 HTML / CSS
yy司仪主持词
2014/03/22 职场文书
文明市民先进事迹
2014/05/15 职场文书
预备党员转正考核材料
2014/06/03 职场文书
火箭队口号
2014/06/18 职场文书
法学求职信
2014/06/22 职场文书
社区精神文明建设汇报材料
2014/08/17 职场文书
2014市府办领导班子“四风问题”对照检查材料思想汇报
2014/09/24 职场文书
旗帜观后感
2015/06/08 职场文书
关于军训的感想
2015/08/07 职场文书