fox
fox
  • 发布:2020-08-26 08:52
  • 更新:2021-08-29 16:05
  • 阅读:1721

关于uni-swipe-action-item 动态加载的问题

分类:uni-app

正常的v-for去渲染是没有问题比如我定义一个数组,然后for循环是没有问题,可以滑动可以点击,但是,当我在其他页面去修改这个数组,增加记录的时候,多出来的那个数组是没办法滑动的,只能滑动一开始页面渲染的那几个item,多出来的item是没有滑动效果的。这个不懂如何解决

2020-08-26 08:52 负责人:无 分享
已邀请:
二福

二福

楼主解决了吗

智密科技

智密科技 - 专业公司承接Uniapp项目外包 插件开发 Q群755910061 QQ:57570616 VX:ZhimiTec

我们基于swipe做过仿抖音的东西,但是效果不是特别好,可以尝试解决,联系微信:zhimitec
专业的uniapp插件/项目外包团队为您服务,
可签订合同、提供发票,售后无忧

1***@qq.com

1***@qq.com - 前端小白

我也碰到了 请问问题解决了吗
lazybone2021

lazybone2021 - 80后宅

楼主,问题解决了吗?也遇到这个问题了

lazybone2021

lazybone2021 - 80后宅

刚也遇到了这个问题,去查了下u-swipe-action组件的代码,
具体是因为:
你不在u-swipe-action所在页面,修改了数组后,u-swipe-action组件会调用mounted(),
进而调用getActionRect(),这个时候页面获取不到组件宽度,res.width = 0,
这时movableViewWidth 就始终等于滑块按钮的宽度btnWidth,
所以不能滑动
mounted() {
this.getActionRect();
},
getActionRect() {
this.$uGetRect('.u-swipe-action').then(res => {
this.movableAreaWidth = res.width;
// 等视图更新完后,再显示右边的可滑动按钮,防止这些按钮会"闪一下"
this.$nextTick(() => {
this.showBtn = true;
})
});
},

解决方法:
在自己工程中,找到这个组件,然后给它添加一个activated(),让组件每次加载都重新获取宽度就可以了
activated() {
this.getActionRect();
},

但是不知道对组件会产生什么影响,我暂时没找到其它方法,有大佬知道正确解决方法请指正

该问题目前已经被锁定, 无法添加新回复