uni-ui文件选择组件无法选择超过9个的文件问题解决

问题

uni-file-picker组件设置limit为10,但是当选择了9个文件后,再选择,会提示“您最多选择9个文件”,无法选择9个以上的文件。

原因

找到uni-file-picker的源码你会发现:

limitLength() {
	if (this.returnType === 'object') {
		return 1
	}
	if (!this.limit) {
		return 1
	}
	if (this.limit >= 9) {
		return 9
	}
	return this.limit
}

limit做了限制,大于9会直接限制为9

解决

既然找到了问题那就好办了
解决方法一:直接将node-modules中限制的那几行源码注释,亲测有效,但是这个方法太粗暴了,而且只能在你的环境生效,别人要开发的话那他也得注释他本地node-modules中的那块代码。
路径:@dcloudio+uni-ui@1.4.27/node_modules/@dcloudio/uni-ui/lib/uni-file-picker/uni-file-picker.vue

limitLength() {
	if (this.returnType === 'object') {
		return 1
	}
	if (!this.limit) {
		return 1
	}
	// if (this.limit >= 9) { /**
	// 	return 9							* 注释这几行
	// }											*/
	return this.limit					
}

解决方法二(推荐):将uni-file-picker组件的源码全部拷贝出来,作为一个自定义组件使用。
在这里插入图片描述

<template>
  <cus-uni-file-picker
    ref="uploader"
    :value="modelValue"
    :limit="limit"
    :limit-length="10"
    :auto-upload="false"
    file-mediatype="all"
    file-extname="jpg,png,bmp,jpeg,pdf"
  >
    <view class="upload">
      <uni-icons type="plusempty" size="35" color="#aeaeae"></uni-icons>
    </view>
  </cus-uni-file-picker>
</template>
<script setup lang="ts">
import cusUniFilePicker from '@/components/CusFilePicker/uni-file-picker.vue'
</script>
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值