React-native:图像需要在渲染之前运行

时间:2018-11-05 09:32:48

标签: react-native

我在项目资产中有图像列表。我调用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

1 个答案:

答案 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并查看答案。您可以找到另一种可用于加载图像的方法。然后选择您想要的方法。