2016-05-16 54 views
3

我无法在ReactNative ListView中显示存储在JSON数组中的图像。比方说,这是我的数据:在ListView中添加存储在JSON数组中的图像 - ReactNative

var data = [ 
    { 
    id: 0, 
    photo: '../images/test.png', 
    }, 
    { 
    id: 1, 
    photo: '../images/test.png', 
    }, 
    { 
    id: 2, 
    photo: '../images/test.png', 
    }, 
] 

然后,在我的课,我首先需要的数据(假设它是被正确出口):

var data = require("../data").data 

然后在数据源的每个元素,我环路通过JSON数组,并尝试显示图像:

<Image source={{uri:item.photo}} style={styles.photo}></Image> 

但是,屏幕上没有任何内容显示。我知道数据正在通过正确,因为其他的文本字段(未如上所示)显示拉正确,例如:

<Text style = {styles.name}>{item.id}</Text> 

这将显示正常。此外,如果我尝试直接在源中需要图像,即

<Image source={require('../images/test.png')} style={styles.photo}></Image> 

它工作正常。有谁知道为什么图像源不被拉引用作变量时?

+0

是的,你不能这样做。 'source:{{uri:blablabla}}'用于获取网络图像。对于本地图像,你需要它们。你不能给'需求'一个动态的路径。路径必须是静态的。 –

+0

但我要求一个静态路径,对吧?例如'data [0] .photo'将是图像源需要引用的静态路径? –

+0

那就是了,但是你正在动态地要求这条路径,我认为这是不允许的。一种方法是,您可以将要求放入数据库中。 –

回答

1

你可以这样做,以这种方式:

var data = [ 
 
    { 
 
    id: 0, 
 
    photo: require('../images/test.png'), 
 
    }, 
 
    { 
 
    id: 1, 
 
    photo: require('../images/test.png'), 
 
    }, 
 
    { 
 
    id: 2, 
 
    photo: require('../images/test.png'), 
 
    }, 
 
]