javascript - 尝试将要求与字符串连接一起使用时出现“TransformError:无效调用”
问题描述
我有这种格式的数据:
const data = [
{
id: '0',
title: 'Some title 1'
},
{
id: '1',
title: 'Some title 2'
}
...
]
我有一个包含图像的文件夹,其中每个图像都称为“0.png”、“1.png”等,与数据数组长度的数量相同。我要做的是映射数据数组,显示标题和与元素ID同名的图像。例如,
<Image source={require('./images/0.png')} />
所以我写了这段代码:
data.map(item => (
<View>
<Image source={require(`./images/${item.id}.png`)} />
<Text>{item.title}</Text>
</View>
))
这给了我这个错误:错误:TransformError: Invalid call at line 36: require("./images/" + item.id + ".png")
我也试过这样:
<Image source={require('./images/' + item.id + '.png')} />
当我 console.log 使用此连接创建的图像的路径时,它看起来没问题。
顺便说一句,这很好用:
<Image source={require('./images/' + 10 + '.png')} />
它显示名为“10.png”的图像
我错过了什么吗?请帮忙!
解决方案
使用的名称require
需要静态知道。当您添加'./images/' + 10 + '.png'
它时立即翻译,./images/10.png
但当您动态执行它时,它将不起作用。
https://facebook.github.io/react-native/docs/images.html
解决这个问题的一个解决方案是uri
向您的数据添加一个数据字段并从那里加载。您可以使用外部脚本(例如在 python 中)生成它。
推荐阅读
- java - Volley 将 BigInteger 值转换为指数值
- entity-framework-migrations - 编译错误“类型‘MyMigration’已经定义了一个名为‘Up’的成员,具有相同的参数类型
- jestjs - 开玩笑 moduleNameMapper 到处更改模块
- apache-spark - 使用 Spark-JDBC 时是否可以在 partitionColumns 中提供多个列?
- android - 从另一个片段调用一个片段的方法的最佳实践,它们都包含在 FragmentPagerAdapter 中
- php - 如何在php中通过POST获取数据JSON多数组
- c++ - 滚动同步
- excel - Power Query - 在组函数中计算列中的非空白
- swift - 是否可以从 AppStore 访问 iOS 应用程序的控制台日志?
- python - 从另一个数组分配一个数组 [加密器问题]