我知道 require('') 需要一个静态字符串,但是当我尝试在包装中映射值以供稍后在代码中使用时
const BOXES2 = {
silver: require('../../assets/imgs/status/silveroutline.png'),
gold: require('../../assets/imgs/status/goldoutline.png'),
platinum: require('../../assets/imgs/status/platinumoutline.png')
}
它们解析为整数,以下记录数字 6
constructor(props) {
super(props);
var data = BOXES2[this.props.userData.memberStatus];
console.log(data);
}
所以我无法加载这样的图像
<Image
source={BOXES2[this.props.userData.memberStatus]}
style={img}
resizeMode="contain"
/>
memberStatus 是一个字符串值,数据和图像路径是正确的,因为我可以通过直接在 render() 中使用每个源路径创建一个单独的图像来使其工作,然后由 userData 有条件地将其中一个放入 return() .
不过,我想另辟蹊径,因为它需要的行数要少得多,维护起来也容易得多。