【uni-app】小程序使用UI组件整理(三)

这篇博客主要探讨了uni-app中image、video、swiper和scroll-view组件遇到的问题及解决办法,以及uView的icon和Popup组件的调整挑战。在image的src问题上,建议使用require引入图片或在方法中传入index。对于video的本地播放失败,推荐使用网络地址。对于swiper的特定滚动需求,通过手动滚动和数据补全实现。scroll-view的scroll-top问题,需确保其值动态变化。uView的icon位置调整和Popup弹出层问题,作者提出了临时替代方案。
摘要由CSDN通过智能技术生成

uni-app的UI组件部分

  1. image标签,当src是需要判断的数据时,使用:src="url"失败
  2. video标签:使用本地视频地址读取失败
  3. swiper进行数列滚动并要求每五个滚动一次
  4. scroll-view的scroll-top无法滚动到指定位置

uView组件部分

  1. icon无法进行位置调整
  2. Popup 弹出层,嵌入组件中使用时,弹出失败

uni-app的UI组件部分

1. image标签,当src是需要判断的数据时,使用:src="url"失败
解决办法:使用require引入图片
<image :src="require('@/static/images/'+ (flag ? 'arrow-down' : 'arrow-right') +'.png')"></image>

现象:当在循环中的使用image标签,并且标签中需要循环的index判断时,会报index的错

解决办法:在方法中传入index进行返回值
<view v-for="(item,index) in list" :key="index">
	<image class="image" :src="require('@/static/images/bg-'+ getCurrentBg(index) +'.png')">
</view>
2. video标签:使用本地视频地址读取失败

现象:当读取的地址时本地地址时,报错 MEDIA_ERR_SRC_NOT_SUPPORTED

解决办法: 没有解决
目前的处理办法是:使用网络地址
3. swiper进行数列滚动并要求每五个滚动一次

需求:每五个滚动一次,并且当数据不是五的倍数时,每次滚动仍按照五进行滚动

解决办法:文档中的swiper只能记录当前指向的下标,并且改变事件只能监听到滚动后,因此先关掉了swiper的自动滚动,并手动加入滚动操作,当数据不是五的倍数时补全数据并给一个变量isEmpty去判断是补全数据
<swiper  :display-multiple-items="swiper.multipleItems" :current="swiper.current">
swiper:{
 current: 0,
 multipleItems: 5,
}
changeCurrent(){
	  // 补全
      let itemCount = this.swiper.multipleItems - (this.list.length % this.swiper.multipleItems)
      if(itemCount !== this.swiper.multipleItems){
        for (let i = 0; i < itemCount; i++) {
          this.list.push({id: new Date().getTime(),isEmpty:true})
        }
      }
      // 修改current改变当前指向进行滚动
      setInterval(()=>{
        this.swiper.current = this.swiper.current + this.swiper.multipleItems ;
        if(this.swiper.current >= this.list.length){
          this.swiper.current = 0;
        }
      },3000)
    },
4. scroll-view的scroll-top无法滚动到指定位置

现象:业务中的scroll-view的使用在uView中的tabs中,当在某个tab中进行了滚动之后,切换tab需要将scroll-view滚动到顶部而不是上一个tab滚动的地址,根据文档使用scroll-top之后无效

解决办法:scroll-view的scroll-top需要是一个一直变动的值,当保持一个值时,无法进行滚动,因为每次在改变tab时先给赋一个其他值再改为0
changeCurrentTab(index){
	this.currentTab = index
	this.scrollTop = -1
	this.$nextTick(function() {
	  this.scrollTop = 0
	})
},

uView组件部分

1. icon无法进行位置调整

现象:根据文档应该是可以进行图片与文字的位置选择,但各种尝试之后,之只能进行左边图右边文字的展示

解决办法:没有解决,可能是我打开的方式不对,也可能是版本不够
目前的处理办法是:当业务场景需要改变图片与文字文字位置时,不使用icon中的label
2. Popup 弹出层,嵌入组件中使用时,弹出失败

现象:提取popup为公共组件弹出时,进行变量控制,弹出失败

解决办法:没有解决
目前的处理办法是:使用uni-app的popup弹出层
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值