我遇到了一个奇怪的问题。如果我用这样的值设置一个变量 direclty "const myString = 'someWord';",那行得通,但如果我从这样的变量中获取值"const myString = someVariable;",那行不通,如果我在条件块上设置值也不起作用。
所以,工作:
var jsonName = 'tramwayen';
const pathex = require('../assets/JSON/' + jsonName);
var json = JSON.parse(JSON.stringify(pathex));
不起作用:
var jsonName = variable;
const pathex = require('../assets/JSON/' + jsonName);
var json = JSON.parse(JSON.stringify(pathex));
不起作用:
var jsonName = '';
if (condition) {
jsonName = 'tramwayen';
}
const pathex = require('../assets/JSON/' + jsonName);
var json = JSON.parse(JSON.stringify(pathex));
我真的不明白。
我有这个错误:"第 41 行的调用无效:require('../assets/JSON/' + jsonName2(
大多数 JS 捆绑器无法处理动态require
导入。您可能希望加载所有文件,并将它们放在一个对象中:
let data = {
tramwayen: require('../assets/JSON/tramwayen.json'),
something: require('../assets/JSON/something.json'),
// and so on
};
并使用 data
对象检索所需的数据。
从我在做一些研究时读到的内容来看,似乎不可能动态地提出要求。在反应本机要求应该是静态的。但是有一些解决方案可以避免此问题。
这是我的,我将不同 Json 的所有数据放在一个 json 上,我动态选择我想要获取的部分数据。
我还可以将所有静态需求放在一个对象上,然后选择我想要获得的动态需求。
解决方案 1:
const id = window.currentPI;
const json = require('../assets/JSON/mainData.json');
const nbreOfPix = json[`${id}`].preData.numberOfPictures;
解决方案 2:
const IMAGES = {
tramwayen: require('../assets/CtrlPI/PHOTO_articles/008_02_Img.png'),
tramwayen2: require('../assets/CtrlPI/PHOTO_articles/HC002_04_Img.png')
};
getImage = (name) => {
return IMAGES[name];
};