文件系统不保存我的文件并抛出错误

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

我正在尝试将一组延时保存到我正在构建的 expo React 本机应用程序中的 Excel 文件中。当我单击“保存”按钮时,它会抛出此错误

[未处理的承诺拒绝:错误:对函数“ExponentFileSystem.writeAsStringAsync”的调用已被拒绝。]

我使用的是 Android 设备。

我查遍了谷歌,但找不到这个问题的解决方案。有谁知道如何解决这个问题吗?

这是我保存文件的函数的代码:

const writeArrayToExcel = async (dataArray) => {
    const resultsMade = [["lap", "time"]];
    dataArray.map((lapTime, index) => {
        const lapName = `${lapWord} ${index + 1}`;
        const valLap = `${displayTime(lapTime).hours}:${displayTime(lapTime).minutesSeconds}:${displayTime(lapTime).centiseconds}`;
        resultsMade.push([lapName, valLap]);
    })

    let wb = XLSX.utils.book_new();
    let ws = XLSX.utils.aoa_to_sheet(resultsMade);

    XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');
    
    const base64 = XLSX.write(wb, { bookType: 'xlsx', type: 'base64' });

    const currentDate = new Date();
    const formattedDate = `${currentDate.getFullYear()}-${(currentDate.getMonth() + 1).toString().padStart(2, '0')}-${currentDate.getDate().toString().padStart(2, '0')}_${currentDate.getHours().toString().padStart(2, '0')}-${currentDate.getMinutes().toString().padStart(2, '0')}-${currentDate.getSeconds().toString().padStart(2, '0')}`;

    const filename = FileSystem.downloadDirectory + `Stopwatch-${formattedDate}.xlsx`;
    FileSystem.writeAsStringAsync(filename, base64, {
        encoding: FileSystem.EncodingType.Base64
    }).then(() => {
        //Sharing.shareAsync(filename);
    });
};

const exportToExcel = () => {
    writeArrayToExcel(results);
};
react-native expo filesystems
1个回答
0
投票

按照Expo“writeAsStringAsync”的建议,内容应该是字符串

如果不是,应该转换为字符串

writeAsStringAsync(fileUri, JSON.stringify(content),EncodingObj)
© www.soinside.com 2019 - 2024. All rights reserved.