我在项目资产中有图像列表。我调用api来获取图像名称。
然后我使用该名称显示图片:
if (name !== null) {
<Image source = {require('../assets/listImage/' + name)}/>
} else {
<Image source = {require('../assets/listImage/abc.png')}/>
}
但是由于名称为null而导致应用程序崩溃。它甚至在第一个屏幕运行之前就崩溃了(此代码在导航的第三个屏幕中)
更新:完整代码:https://drive.google.com/open?id=1SlvJ7KRrhmewDxEBgJQ_QD47LUk6sDDb
答案 0 :(得分:0)
React-native不支持这种动态图像加载。
我的意思是require('../assets/listImage/' + name)}
,在此名称是在运行此应用程序时动态添加的。但据我所知,它不受支持。
您可以使用以下类型的图像加载代替
if (name !== null) {
switch(name) {
case example1:
<Image source = {require('../assets/listImage/image1')}/>
break;
case example2:
<Image source = {require('../assets/listImage/image2')}/>
break;
...........
}
尤其是此名称应与交换机兼容,否则也应使用该名称。基本上,我需要坐在运行时不要动态加载图像。为此使用这种代码
导航至此React Native - Image Require Module using Dynamic Names并查看答案。您可以找到另一种可用于加载图像的方法。然后选择您想要的方法。