Retool中使用JSON Schema Form实现多文件上传功能异常问题咨询
配置排查结论
你当前使用的JSON Schema配置完全符合react-jsonschema-form官方规范,不存在错误。无法选择多文件的原因是Retool平台对内置的react-jsonschema-form组件做了自定义封装,默认没有开启文件输入的多文件选择属性,和原生开源版本的行为存在差异。
可行解决方案
方案1:补充uiSchema配置开启多文件能力
react-jsonschema-form的交互配置需要单独在uiSchema字段中定义,你需要在现有JSON Schema之外,添加如下uiSchema配置:
{ "files": { "ui:widget": "file", "ui:options": { "multiple": true } } }
将上述配置填入Retool中RJSF组件对应的uiSchema配置项,即可开启文件选择框的多文件选择能力。
方案2:适配Retool生态的替代实现
如果方案1的配置不生效,说明Retool对内置RJSF的文件组件做了强制限制,可以用以下方法绕开:
- 自定义RJSF widget组件:自行实现支持
multiple属性的文件输入组件,将选中的多个文件转成data-url数组后同步到表单对应字段即可 - 直接使用Retool原生多文件上传组件:选择Retool自带的多文件上传组件完成文件选择、上传逻辑,再将上传完成后的文件数据数组绑定到RJSF表单的
files字段值中,适配成本更低
内容的提问来源于stack exchange,提问作者Super Kai - Kazuya Ito
相关产品推荐
相关产品推荐

