在React Native中,如何捆绑文本文件并在运行时读取它的值?

ere*_*eit 20 android react-native

我可能会这样做的几个原因:

  • 创建一些webview并注入从文件加载的javascript
  • 将大块文本分成单独的文件而不是强制它们进入视图
  • 包括要在应用程序中使用的任意格式(例如,CSV)的原始数据

在React Native中,您可以使用require导入图像文件,但据我所见,这仅适用于图像文件.它(奇怪地)也适用于JSON文件(请参阅 从React本机中的本地json文件导入文本).但是,我还没有看到任何关于导入普通旧文本文件的问题.

ere*_*eit 6

在四处询问后,我能想到的最好的方法是使用库的 派生react-native-fs来访问android“资产”。该派生请求是一个拉出请求,一旦合并,就可以使用它。

请注意,在android dev中,“资产”专门指访问文件的原始内容。为了在react native方面执行此类操作,您需要编写一个native模块以与react交互,因此需要上面的库。见这里(和搜索资产)。

在您的react native项目中,创建一个名为的文件android/app/src/main/assets/text.txt。使用上述版本react-native-fs,您可以:

RNFS.readFileAssets('test.txt').then((res) => {
  console.log('read file res: ', res);
})
Run Code Online (Sandbox Code Playgroud)

更新:如果您希望通过拉取请求来启用此功能,则应通过在github上竖起大拇指让作者知道您想要它。

  • 那iOS呢? (5认同)
  • 作为该PR的作者,我支持此解决方案!(希望模块所有者能够尽快将其集成) (2认同)

Sco*_*rch 6

有一个库可以解决这个问题:React-Native-Local-Resource。该库允许您在运行时异步加载 Android 和 iOS 中的任何类型的文本文件。