require()无法使用变量-反应本机

我遇到一个奇怪的问题。如果我使用这样的值设置变量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)”


眼眸繁星
浏览 557回答 2
2回答

holdtom

大多数JS捆绑程序无法处理动态require导入。您可能要加载所有文件,并将它们放在一个对象中:let data = {    tramwayen: require('../assets/JSON/tramwayen.json'),    something: require('../assets/JSON/something.json'),    // and so on};并使用该data对象检索所需的数据。

慕码人2483693

根据我在做一些研究时所读到的内容,似乎不可能动态地提出要求。在反应中本机要求应为静态。但是,有一些解决方案可以避免此问题。这是我的,我将不同的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];};
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript