如果我只设置了require('../img/dest.png')
,则图像可以正常工作,但是当我尝试使用
the Tty Demystified
它将显示错误
calls to require expect exactly 1 string literal argument but this was found: require(""+item.img+"").(null)
有谁知道我的美元变量发生了什么?
谢谢。
render() {
// Taken from https://flatuicolors.com/
const items = [
{ name: 'Name', code: '#1abc9c', url: 'yahoo.com.tw', img: '../img/dest.png' }
];
return (
<GridView
itemDimension={130}
items={items}
style={styles.gridView}
renderItem={item => {
console.log(`'${item.img}'`);
return (
<TouchableOpacity onPress={() => this.showLinkAlert(item.name, item.url)}>
<ImageBackground source={require(`'${item.img}'`)} style={[styles.itemContainer, { backgroundColor: '#bdc3c7' }]}>
<Text style={styles.itemName}>{item.name}</Text>
</ImageBackground>
</TouchableOpacity>
);
}}
/>
);
}
}
答案 0 :(得分:3)
字符串替换在运行时发生,但是require
在构建时发生。因此,当require运行时,它并不能替代任何东西,它只是试图找到一个名为那个的文件。