文件“(null)”不可写异常(EXPO IOS)React Native

n53p2ov0  于 2023-01-18  发布在  React
关注(0)|答案(2)|浏览(118)

我正在开发一个世博会应用程序,我在其中生成QR Code.I正在获取base64字符串,我可以保存为jpg或png在画廊/album.so远,在Android上,它工作正常,正如预期.但在IOS上,它是给这个错误
文件“(null)”不可写

  • promiseMethodWrapper中的节点模块/React Native/库/批处理桥/本机模块.js:103:50
  • node_modules/@unimodules/React Native适配器/构建/本机模块代理。本机。js:15:23,位于moduleName.methodInfo.name
  • writeAsStringAsync中的节点模块/expo文件系统/构建/文件系统.js:50:17

我使用expo文件系统方法writeAsStringAsync()这是我的代码。

const filename = FileSystem.documentDirectory + `${imageName}.jpg`; 
                let newFile = decodeURI(filename).replace('file://', '') ;
                console.log(newFile)
                FileSystem.writeAsStringAsync(filename, base64Code, {
                    encoding: FileSystem.EncodingType.Base64,
                }).then(()=>{
                    console.log('worked')
                }).catch((e)=>{
                    console.log(e)
                }); 
                await MediaLibrary.saveToLibraryAsync(filename).then(()=>{ 
                        setIsSavedGallery(true);
                        setTimeout(showAlertGallery, 1000);
                }).catch((e)=>{
                    console.log(e)
                });

关于这个错误的任何线索?我怎么能修复?我做错了什么?我似乎不能理解.任何形式的帮助将不胜感激.谢谢

bvk5enib

bvk5enib1#

我也遇到过同样的问题,我的问题是文件名上有一个空格,在iOS上不太好用,所以我把这个空格换成了_

wlp8pajw

wlp8pajw2#

我可以确认这个问题是因为空间问题。
我使用正则表达式将它们替换为下划线。

title.replace(/\s/g, '_')

相关问题