2016-05-16 75 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'), 
 
    }, 
 
]