javascript - require() 是如何工作的?

标签 javascript macos react-native

我正在学习 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/

相关文章:

javascript - Arc SVG 参数

python - SSL 1108 Mac 问题

android - react native : Horizontal and Vertical Paging Together

react-native - react native 内联文本链接

macos - SceneKit:是否可以在透明对象上转换阴影?

react-native - React Native 中的表格行和列?

javascript - Chrome 选项卡同步 javascript API

javascript - 使用 NodeJS 将字符串拆分为两个变量

javascript - 错误处理 try & catch + 回调?

macos - 使用 const 时,OSX 上的 Opengl es 2.0 GLSL 编译失败