You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native 0.69中react-native-fs无法使用的问题求助

解决Expo+React Native 0.69读取assets文件的报错问题

问题根源

你遇到的RNFSManager.RNFSFileTypeRegular错误,本质是Expo托管模式(Managed Workflow)不支持直接使用react-native-fs这类原生依赖——Expo的托管环境会封装原生层,未经过Expo适配的原生模块无法被正确加载,进而引发后续的AppRegistry注册失败。


解决方案一:使用Expo官方FileSystem API(推荐)

Expo提供了原生支持的文件操作API,无需额外配置原生项目,直接使用:

  1. 安装依赖
npx expo install expo-file-system
  1. 读取assets文件示例
import * as FileSystem from 'expo-file-system';
import { Asset } from 'expo-asset';

// 读取assets目录下的test.txt文件
async function readAssetFile() {
  // 关联本地asset资源
  const asset = Asset.fromModule(require('./assets/test.txt'));
  // 下载asset到本地缓存
  await asset.downloadAsync();
  // 读取文件内容
  const content = await FileSystem.readAsStringAsync(asset.localUri);
  console.log('文件内容:', content);
}

// 在组件中调用
readAssetFile();

解决方案二:转为裸项目(Bare Workflow)使用react-native-fs

如果必须使用react-native-fs,需要将Expo项目转为裸项目,让原生模块可以正常链接:

  1. 生成原生项目目录
npx expo prebuild
  1. 重新安装react-native-fs
npm install react-native-fs
  1. 配置原生项目(仅Android,Windows环境无需iOS操作)
    进入android目录,执行gradle同步(或直接运行项目时自动同步)
  2. 重置缓存并重启服务
# 关闭当前Metro服务后执行
npx react-native start --reset-cache
npx react-native run-android

关键注意事项

  • React Native 0.60+确实不需要手动link,但Expo托管模式下原生模块的加载逻辑和纯RN项目不同,这是你之前尝试无效的核心原因。
  • 托管模式下只能使用Expo官方或Expo兼容的第三方库,避免直接引入原生依赖。

内容的提问来源于stack exchange,提问作者JayantSeth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 06:45:34