我有一个图像文件夹说answers
我在哪里存储我的问题的答案是图像
目前该文件夹中有200张图片。
现在我想根据用户的回答显示答案的图像。
我随机生成答案
`var answer = getAnswers(data)` // some calculation for file name for answer
<Image source={require('../path/to/my/answer/' + answer + '.jpg')}
这样做我收到错误``require expect exactly 1 string literal argument
我开始知道建造者需要在建造之前知道位置。 但是如何解决这类问题。
我无法为require
初始映射200个文件var one = require('../path/one.jpg')
var two = require('../path/two.jpg')
如何解决此类问题。有没有办法做到这一点??
需要帮助。
答案 0 :(得分:0)
require中的动态搜索路径根本不可能。
根据我的理解,你有两个选择:
<强> 1。生成图像文件
您可以制作一个扫描图像文件夹并生成图像网址列表的脚本,而不是手动编写200行。我会建议一种类似的格式:
// Images.js
export const Answers = {
ANSWER_ONE : require('../path/one.jpg'),
ANSWER_TWO : require('../path/two.jpg'),
...
}
然后使用它:
import {Answers} from './Images'
var answer = getAnswers(data)
<Image source={Answers[answer]} />
<强> 2。将图像文件复制到资产文件夹
如果选择此选项,则必须将所有图像文件复制到android和ios项目资源文件夹中。然后你可以像这样使用它们:
var answer = getAnswers(data)
<Image source={{uri: '../path/to/my/answer/' + answer + '}} />
Read more about using image assets。
...
即使第二种选择看起来很诱人,但在大多数情况下我更喜欢第一种选择。主要是因为第二次要求你每次添加图像时都要制作两份副本(假设你同时支持android和ios)。此外,选项1提供了更好的打字建议,您不会拼错图像名称。
希望这有帮助!