React Native中如何压缩文件夹?使用react-native-zip-archive遇错求助
React Native 使用 react-native-zip-archive 报错 TypeError: Cannot read property 'zipFolder' of null 的解决方法
以下是几个排查和解决的方向:
确认模块安装与链接状态
若你的React Native版本低于0.60,安装模块后必须手动执行链接命令:react-native link react-native-zip-archive0.60+版本虽支持自动链接,但仍可能出现链接异常,可尝试重新安装模块:
# yarn 方式 yarn remove react-native-zip-archive yarn add react-native-zip-archive # npm 方式 npm uninstall react-native-zip-archive npm install react-native-zip-archive操作完成后重启Metro服务,并重新编译项目(Android执行
./gradlew clean,iOS执行pod install后重新构建)。检查导入方式是否正确
确保你正确导入了模块的zip方法,同时确认已安装并导入react-native-fs:import { zip } from 'react-native-zip-archive'; import FileSystem from 'react-native-fs';错误的导入方式会导致方法无法被正确调用,进而触发类似报错。
修正路径格式错误
你提供的代码中,targetPath末尾多了斜杠——backup.zip是目标文件而非文件夹,必须去掉末尾的/:const targetPath = `${FileSystem.documentDirectory}backup.zip`; const sourcePath = `${FileSystem.documentDirectory}backup/`;路径格式错误会导致模块内部逻辑异常,引发报错。
配置Android权限
在AndroidManifest.xml中添加存储权限:<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />针对Android 10及以上版本,需在
application标签内添加:android:requestLegacyExternalStorage="true"同时要在代码中动态申请权限,确保应用获得读写权限后再执行压缩操作。
内容的提问来源于stack exchange,提问作者JohnnySmith88
相关产品推荐
相关产品推荐

