首页 > 解决方案 > 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)”

标签: javascriptreact-native

解决方案


大多数 JS 捆绑器无法处理动态require导入。您可能想要加载所有文件,并将它们放在一个对象中:

let data = {
    tramwayen: require('../assets/JSON/tramwayen.json'),
    something: require('../assets/JSON/something.json'),
    // and so on
};

并使用该data对象检索您需要的数据。


推荐阅读