为什么我在移动设备上使用 DocumentPicker.getDocumentAsync() 方法时输出不存在?

问题描述 投票:0回答:1

为什么当我在移动设备上使用 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)
            }
        },
react-native file-upload expo
1个回答
0
投票

查阅文档我意识到输出选项仅适用于网络,

在此输入图片描述

© www.soinside.com 2019 - 2024. All rights reserved.