我一直在嘗試在ListView中加載本地圖像文件。反應本機 - 需要未知的模塊
它的工作時,我硬代碼:
var path = rowData.thumbnail;
console.log(path); // './public/image1.png'
return <Image source={require(path)} style={{width: 60, height: 60}}/>
或像這樣:
return <Image source={require('./public/image1.png')} style={{width: 60, height: 60}}/>
但是,它並沒有,當我讀到的圖像這樣的路徑工作:
return <Image source={require(rowData.thumbnail)} style={{width: 60, height: 60}}/>
與此錯誤消息,
需要未知模塊「'./ public/image1.png'」。如果您確定模塊存在,請嘗試重新啓動打包程序或運行「npm install」。
你能給我一個建議,從對象中讀取路徑嗎?我附上了下面的完整代碼。先謝謝你。
class MyClass extends Component {
constructor(props) {
super(props);
const ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2});
let data = importedData.map(function(d) {
return {
thumbnail: "'./public" + d.thumbnail + "'"
}
});
this.state = {
dataSource: ds.cloneWithRows(data)
};
}
renderRow(rowData) {
var path = rowData.thumbnail;
return <View style={{flex: 1, flexDirection: 'row'}}>
<Image source={require(path)} style={{width: 60, height: 60}}/>
</View>
}
render() {
return (
<View style={{paddingTop: 22}}>
<ListView
dataSource={this.state.dataSource}
renderRow={this.renderRow}
/>
</View>
);
}
}
檢查模塊源內部具有出口指令。你有沒有嘗試在nodejs shell上加載模塊? –