Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
React native “始终”;“需要未知模块”;读取json文件时_React Native - Fatal编程技术网

React native “始终”;“需要未知模块”;读取json文件时

React native “始终”;“需要未知模块”;读取json文件时,react-native,React Native,有点像个新手。我正在尝试读取一些json数据文件: function loadCategories() { const ids = ['tl1', 'tl2', 'tl3', 'tl4', 'tl5', 'tl6']; ids.forEach(function(id) { var contents = require('../Content/top-level/' + id + ".json.js"); ... }); } 但在这里我总是会遇到一个错误: 未处理的J

有点像个新手。我正在尝试读取一些json数据文件:

function loadCategories() {
  const ids = ['tl1', 'tl2', 'tl3', 'tl4', 'tl5', 'tl6'];
  ids.forEach(function(id) {
    var contents = require('../Content/top-level/' + id + ".json.js");
    ...
  });
}
但在这里我总是会遇到一个错误:

未处理的JS异常:需要未知模块“./Content/top-level/tl1.json.JS”。如果您确定模块存在,请尝试重新启动打包程序或运行“npm安装”

考虑到项目结构,文件存在且我的相对路径逻辑应正常:

ProjectDir
  Components
    ThisComponent.js
  Content
    top-level
      tl1.json.js
      tl2.json.js
      ...
i、 e.上面的代码运行于
ThisComponent.js
并试图访问
tl1.json.js
,因此我认为
。/Content/top-level/tl1.json.js
的相对路径可以工作

我试过:

  • 重新启动包装机
  • 改为引用
    /Content/top-level/tl1.json.js
  • 改为引用
    /Content/top-level/tl1.json.js

我在RN0.36.0上。必须是一些明显的东西…对吗?

这在React Native中是不可能的,因为打包机是如何工作的。您必须要求文件具有静态字符串路径。您可以使用类似这样的switch语句-

switch (id) {
  case 'tl1': return require('../Content/top-level/tl1.json');
  case 'tl2': return require('../Content/top-level/tl2.json');
  ...
}

另外,为什么json文件有
.js
扩展名?

这在React Native中是不可能的,因为打包程序是如何工作的。您必须要求文件具有静态字符串路径。您可以使用类似这样的switch语句-

switch (id) {
  case 'tl1': return require('../Content/top-level/tl1.json');
  case 'tl2': return require('../Content/top-level/tl2.json');
  ...
}

还有,为什么您的json文件有
.js
扩展名?

我有一个示例RN应用程序,它可以做到这一点,并且可以正常工作。他们是否在以后的版本中删除了这样做的功能?
.js
只是我的一个疑难解答,以防打包程序只找到以.js结尾的文件或其他文件。不确定它以前是否工作过。看看一年前创建的这个问题,看起来react native fs可能是一个选项。我有一个示例RN应用程序,它可以完全做到这一点,并且可以正常工作。他们是否在以后的版本中删除了这样做的功能?
.js
只是我的一个疑难解答,以防打包程序只找到以.js结尾的文件或其他文件。不确定它以前是否工作过。看看一年前创建的这个问题,看起来react native fs可能是一个选项。