如果您有更多的文件,这是一个简单且真正动态的解决方案。
[不适用于Expo Managed]
虽然问题很老,但我认为这是更简单的解决方案,可能会有所帮助。但我请求原谅任何术语错误,如果我有任何错误,请纠正我。
除了使用REQUIRE 之外,我们还可以将URI与Android(和/或 iOS)的原生应用程序资产一起使用。在这里我们将只讨论安卓
URI 可以根据要求轻松操作,但通常仅用于网络/远程资产,但也适用于本地和本机资产。而 require 不能用于动态文件名和目录
脚步
android/app/src/main/assets
从您的App.js
或包含的目录中打开文件夹index.js
,如果该assets
文件夹不存在,请创建一个。
- 在里面创建一个名为
images
或任何NAME
您选择的文件夹assets
,然后将所有图像粘贴到那里。
react-native.config.js
在主应用程序文件夹中创建一个名为的文件,其中包含App.js
or index.js
。
- 将这些行添加到新的 js 文件中:
module.exports = {
project: {
ios: {},
android: {},
},
assets: ['./assets/YOUR_FOLDER_NAME/'],
};
在YOUR_FOLDER_NAME
使用新创建的文件夹的名称images
或任何给定的位置NAME
- 现在
npx react-native link
从主应用程序文件夹在您的终端中运行,这将链接/添加 android 包中的资产文件夹。然后重建调试应用程序。
- 从现在开始,您可以从
android/app/src/main/assets
react-native 应用程序内部访问所有文件。例如:
<Image
style={styles.ImageStyle}
source={{ uri: 'asset:/YOUR_FOLDER_NAME/img' + Math.floor(Math.random() * 100) + '.png' }}
/>