这没问题:
<Image source={require('./images/ace.png')} />
但是这个:
var name = 'ace';
<Image source={require('./images/' + name + '.png')} />
我尝试了各种变体,但它总是返回错误:
要求未知模块“./images/ace.png”。如果您确定该模块在那里,请尝试重新启动打包器。
答案 0 :(得分:4)
根据本机文档的反应,
// BAD
var icon = this.props.active ? 'my-icon-active' : 'my-icon-inactive';
<Image source={require('./' + icon + '.png')} />
// GOOD
var icon = this.props.active ? require('./my-icon-active.png') : require('./my-icon-inactive.png');
<Image source={icon} />
如何预先声明所需内容并有条件地使用它?
答案 1 :(得分:1)
尝试使用网址
<Image
style={styles.img}
resizeMode={'contain'}
source={{uri: imageURL}}>
和imageURL中可能是一个URL
例如
var imageURL = 'http://assets22.pokemon.com/assets/cms2/img/pokedex/full/702.png'
答案 2 :(得分:-1)
现在的解决方案,名为Row的组件:
const Row = (props) => {
let employmentType;
// Set my own image component dynamically
if(props.SOME_CONDITION){
employmentType = <Image source={require('image!Driver')} style={styles.employeeLogo} />
}
else{
employmentType = <Image source={require('image!ANOTHERIMAGE')} style={styles.employeeLogo} />
}
return(
<View style={styles.row_container} elevation={2}>
{employmentType}
<Text style={styles.row_text}>{'../Assets/Images/' + props.PictureUrl + '.png'}</Text>
<Text style={styles.row_text}>{props.Fullname}</Text>
<Text style={styles.row_text}>{props.EmploymentType}</Text>
</View>
);
};