我正在学习 react-native,但在我的应用需要图片时遇到了一个奇怪的问题。我做了一些测试,这是我发现的:
// Not OK
path = "../imgs/banana.png"
require(path)
// OK
let path = "../imgs/banana.png"
require(path)
// Not OK
let path = "../imgs/" + this.props.fileName
require(path)
但是对于两种不使用 500 错误代码的情况,我得到了相同的错误:
calls to 'require' expect exactly 1 string literal argument, but this was found: 'require(path)'
对于第二个,它找到 require(\"../imgs\"+ this.props.fileName)
但是路径的值是正确的:../imgs/banana.png
为什么会这样?还是我遗漏了什么?
您如何要求多张图片而不必在 switch case 中指定每张图片?
最佳答案
错误是说你必须将字符串文字与 require
一起使用,而不是表达式。
换句话说,您不能在那个环境中动态地要求
东西。
编辑:如果您事先知道所有图像,您可以将对它们的引用放在一个对象中:
const images = {
banana: require('banana.png'),
apple: require('apple.png'),
monkey: require('monkey.png'),
}
并使用 {images.banana}
(或动态使用 {images[this.props.imageName]}
)。
关于javascript - require() 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51417363/