具有大量图像的反应原生动态图像
我有150个按钮的数组链接到150个图片,我需要按下按钮后显示图片。这些按钮的信息存储在JSON文件中。这些照片的名字是按钮的ID的,所以1.JPG,2.JPG等具有大量图像的反应原生动态图像
现在我面对的,我不能写的问题:
fish["image"] = {uri: "asset-library://" + fish.id + ".jpg"};
而且随着如果其他解决方案声明不起作用,因为我有这么多的选择,任何想法?
非常感谢
我有一个类似的问题。我构建了一个包含巨大switch语句的函数,并且对每种情况都有静态需求。现在
function getImage(id) {
switch(id) {
case 1:
return require('./img/1.jpg');
case 2:
return require('./img/2.jpg');
...
}
}
你可以做
fish["image"] = getImage(fish.id);
我也不得不使用超过100个图标,所以不是手写的情况下,我建立了自动生成功能的脚本。
我对于我开发的组件也有这个问题。我在json文件中使用了base64图像。但也许它不适合你,我希望它能帮上忙。
<Image
style={styles.imgStyle}
source={{uri: CountryFlags[country.cca2]}}
/>
你可以在这里看到:https://github.com/xcarpentier/react-native-country-picker-modal/blob/master/src/index.js#L137-L139
如果你有关于它的文件夹,只要将影像转换这样的:
#!/bin/sh
list=`ls ./flags | grep '[A-Z]'`
echo "{"
for item in $list
do
header="data:image/png;base64,"
img64=`ls ./flags/$item | xargs cat | base64`
echo ${item:0:2} :\'$header$img64\',
done
echo "}"
好主意!不错的工作 –
我想了解这个解决方案。什么是'cca2'这只是一个整数索引值?这是你自己设计的一个未声明的变量和文件后缀吗? – zipzit
@zipzit country.cca2是这些国家的ISO代码,如US或FR,并且对应于CountryFlag.js文件中的一个密钥,该文件包含与国旗相对应的json,并将其旗标编码为base64。 –
这是我伤心的后备计划,但我我真的希望有人能拿出更好的东西 –
@AdamKatz我不认为会有人会。 React Native解决本地图像问题的方法是在编译时将require的结果内联。每个字符串连接都不允许有人做这样的事情。 –