赞
踩
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>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。