为什么当我在移动设备上使用 expo-document-picker 库中的 DocumentPicker.getDocumentAsync() 方法时,它不返回文件列表、输出?
我的项目是在React Native Web中构建的,我正在尝试将文件发送到服务器,当我在移动设备上使用上述方法时,输出值不会出现,这是我当前的代码:
这里声明了将接收文件的状态:
const [certificateFile, setCertificateFile] = useState<null | File>(null)
这里是设置此声明状态的函数:
const pickDocument = async () => {
try {
const file = await DocumentPicker.getDocumentAsync({
type: "application/pkcs12",
})
if (file.output && file.output[0].type == "application/pkcs12") {
setCertificateFile(file.output[0])
}
} catch (error) {
console.log(error)
}
}
这里声明了表单提交功能:
async onSubmit(values, formikHelpers) {
if (loading) return
if (!certificateFile) {
formik.setFieldError("certificate_file", "Obrigatório o envio do certificado digital.")
return
}
setLoading(true)
const formData = new FormData()
const data: CustomerForm = {
...values,
}
formData.append("data", JSON.stringify(data))
formData.append("certificate_file", certificateFile)
try {
const response = await api.post("/customer", formData)
console.log(response)
onDismiss()
} catch (error) {
console.log(error)
} finally {
setLoading(false)
}
},
查阅文档我意识到输出选项仅适用于网络,