Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 在React Native中动态更改图像URL_Image_React Native - Fatal编程技术网

Image 在React Native中动态更改图像URL

Image 在React Native中动态更改图像URL,image,react-native,Image,React Native,我正在尝试动态设置图像URL。图像存储在本地,其位置路径位于JSON文件中 JSON文件 { "total": 2, "categories": [ { "id": "cat1", "name": "Burgers", "itemCount": 10, "images":{ "main":"./../images/items/Burgers.jpg" } }, { "id":

我正在尝试动态设置图像URL。图像存储在本地,其位置路径位于JSON文件中

JSON文件

{
  "total": 2,
  "categories": [
    {
      "id": "cat1",
      "name": "Burgers",
      "itemCount": 10,
      "images":{
        "main":"./../images/items/Burgers.jpg"
      }
    },
    {
      "id": "cat2",
      "name": "Pizzas",
      "itemCount": 5,
      "images":{
        "main":"./../images/items/Pizzas.jpg"
      }
    }
  ]
}
renderItem: function (item) {
    var imageURL = require(item.images.main);
    return (
        <View style={styles.mainContainer}>
            <Image source={imageURL} style={styles.image}>
                <Text style={styles.textMain}>{item.name}</Text>
            </Image>
        </View>
    );
}
代码

{
  "total": 2,
  "categories": [
    {
      "id": "cat1",
      "name": "Burgers",
      "itemCount": 10,
      "images":{
        "main":"./../images/items/Burgers.jpg"
      }
    },
    {
      "id": "cat2",
      "name": "Pizzas",
      "itemCount": 5,
      "images":{
        "main":"./../images/items/Pizzas.jpg"
      }
    }
  ]
}
renderItem: function (item) {
    var imageURL = require(item.images.main);
    return (
        <View style={styles.mainContainer}>
            <Image source={imageURL} style={styles.image}>
                <Text style={styles.textMain}>{item.name}</Text>
            </Image>
        </View>
    );
}
renderItem:函数(项){
var imageURL=require(item.images.main);
返回(
{item.name}
);
}
这会产生以下错误

2015-12-10 16:02:45.295[错误][tid:com.facebook.React.rctexceptionmanagerqueue]未处理的JS异常:需要未知模块“/./images/items/Burger.jpg”。如果您确定模块在那里,请尝试重新启动打包机

但是如果我替换var imageURL=require(item.images.main)带有var-imageURL=require(“../../images/items/Pizzas.jpg”)它完美地显示了图像

这是什么原因造成的?如何正确地做到这一点?

使用require(PATH)方法实际上会使打包人员在打包过程中尝试解析图像,如果只是查看变量,则无法解析图像。我会尝试做:

<Image source={{uri: image.images.main}} />

在使用图像之前,我们需要
要求图像

像这样的东西

const image=require(“../../assets/someImage.png”)


这东西对我有用

例外情况抱怨
Burger.jpg
丢失。当您硬编码字符串
Pizzas.jpg
时,它会工作。你确定Burger.jpg不只是丢失了吗?我想这已经不管用了。我现在正在我的应用程序中做这件事。我没有收到任何错误,但我的图像没有显示。为什么显示来自api的图像如此困难?!如果从url加载,则需要指定维度。如何将它从require转换为uri?@LuvnishMonga您可以这样做。