当前位置:  开发笔记 > Android > 正文

名称中的React native Image变量不起作用

如何解决《名称中的ReactnativeImage变量不起作用》经验,为你挑选了1个好方法。

我正在尝试加载一个在其源代码中有变量的图像,就像这样.


  {_.map(this.state.ambiences, (id) => {
    var image = require('../../assets/img/ambiances/icons/' + label + '.png'); // variable label equals "chic" here
    var image2 = require('../../assets/img/ambiances/icons/chic.png');
    return ;
  })}

我收到以下错误(尝试设置变量图像时抛出):需要未知模块"../../assets/img/ambiances/icons/chic.png"

如果我对该var image = ...行进行注释,它source={image2}在Image标签中可以正常工作.

我检查过,两个字符串完全相同.有任何想法吗 ?



1> purii..:
解决方法

也许这个问题可以帮到你.

我们故意不支持动态生成的图像名称,因为它使得资产随着时间的推移变得非常困难,就像你不想做的那样,我需要做一个my MyComponent = require('./'+ libName + typeOfComponent); 或类似的东西.像这样的动态图像名称生成也不适用于我们推出的新动态资产管理系统,让您只需使用cmd + R即可添加和更新资产(不再需要添加到Xcode并重新编译).

捆绑的图像

如文档所述,您要使用的图像需要"通过Xcode资产目录或Android drawable文件夹"捆绑在一起.您还必须手动指定图像的尺寸.

请注意,此方法不提供安全检查.由您来保证这些图像在应用程序中可用.


    {_.map(this.state.ambiences, (id) => {
        return ;
    })}

替代

您对使用switch或if语句有何看法?


    {_.map(this.state.ambiences, (id) => {
        switch (label) {
            case "chic":
                return ;
            case "otherimage":
                return ;
            default:
                return ;
        }
    })}

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有