当前位置:   article > 正文

uni-ui文件选择组件无法选择超过9个的文件问题解决_uni-file-picker 可以传超过9张吗

uni-file-picker 可以传超过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
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

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					
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

解决方法二(推荐):将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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/190276
推荐阅读
相关标签
  

闽ICP备14008679号