reactjs 中运用swiper 插件时 点击事件失效问题
来源:互联网 发布:ipad pro 10.5 知乎 编辑:程序博客网 时间:2024/05/16 15:50
在reactjs 中运用swiper 相关的插件(包括swiper.js,react-swiper,以及react-id-swiper)会出现点击事件失效的问题,那么问题出现在哪里呢?
先上正常的逻辑代码
return ( <Swiper {...params} > {that.props.bannerData.map((item,index) => { return ( <img src={item.imgurl} onClick={e=>this.clickFunc(e} key={index}/> ) })} </Swiper> )
正常情况下会这样写,而且页面的渲染,以及点击貌似没有问题,但是当我们在第一屏反向滑动时候点击发现页面跳转的逻辑没有执行?这是为什么呢?
经过仔细查看发现 原来swiper的原理是 n+1 或者是n+2 .............
那么也就是在某一轮播的item上是没有onclick 事件的,因此解决方案也就出现了,看下面的代码
componentDidUpdate(newProps, newState) { var bannerItems = document.getElementsByClassName('swiper-slide'), _this = this; for (var i = 0, length = bannerItems.length; i < length; i++) { bannerItems[i].onclick = function(e) { e.stopPropagation(); e.preventDefault(); var bannerObj = JSON.parse(e.target.dataset.item) || {}; _this.linkTo(bannerObj); } } }
return ( <Swiper {...params} > {that.props.bannerData.map((item,index) => { return ( <img src={item.imgurl} data-item={JSON.stringify(item)} key={index}/> ) })} </Swiper> )当我们在组建更新的生命周期里做这样的处理时候问题就可以解决了,现在无论你怎样滑动都没有问题了
阅读全文
0 0
- reactjs 中运用swiper 插件时 点击事件失效问题
- HTML中 点击完onclick事件后,hover失效问题
- ListView条目中有CheckBox点击事件失效问题
- 解决Listview中Item中控件设置点击事件而Item点击事件失效问题
- 解决ListVeiw点击事件失效问题
- ListView中Item点击事件失效
- ListView的item中有button ImageButton CheckBox EditText等时 点击事件失效问题的解决
- ListView的item中有button ImageButton CheckBox EditText等时 点击事件失效问题的解决
- unity EasyTouch插件中触摸事件失效
- 解决ScrollView中嵌套ListView滚动效果冲突问题 & ListVIew点击事件失效
- 使用swiper插件过程中遇到的问题
- ListVIew点击事件失效
- ListView点击事件失效
- ListVIew点击事件失效
- ListVIew点击事件失效
- ListVIew点击事件失效
- listview点击事件失效
- ListVIew点击事件失效
- 工厂模式
- UVA 1629 Cake slicing(四维DP)【分割格子类模板】
- 产品团队之矩阵式组织结构
- 关于ViewPager嵌套Fragment,第二次加载数据不显示问题
- jvm之Java代码的编译和执行
- reactjs 中运用swiper 插件时 点击事件失效问题
- 新手学习vue必看
- web中TextBox的onblur onload 属性
- andriod返回时刷新上一级activity实现
- traceroute和tracert区别
- 智能聊天机器人小黄鸡及其制作方法
- hdu1255 覆盖的面积(线段树+离散化+扫描线)
- SQL:oracle 层次查询 start with connect by
- 算法系列——House Robber