这里有一个RN newb的位.我正在尝试读取一些json数据文件:
function loadCategories() {
const ids = ['tl1', 'tl2', 'tl3', 'tl4', 'tl5', 'tl6'];
ids.forEach(function(id) {
var contents = require('../Content/top-level/' + id + ".json.js");
...
});
}
Run Code Online (Sandbox Code Playgroud)
但在这里我总是得到一个错误:
未处理的JS异常:需要未知模块"../Content/top-level/tl1.json.js".如果您确定模块在那里,请尝试重新启动打包程序或运行"npm install".
根据项目结构,文件存在且我的相对路径逻辑应该是正常的:
ProjectDir
Components
ThisComponent.js
Content
top-level
tl1.json.js
tl2.json.js
...
Run Code Online (Sandbox Code Playgroud)
即上面的代码正在运行ThisComponent.js并尝试访问tl1.json.js等,所以我认为相对路径../Content/top-level/tl1.json.js会起作用.
我试过了:
./Content/top-level/tl1.json.js改为引用/Content/top-level/tl1.json.js改为引用我在RN 0.36.0.一定要明显......对吗?
由于打包器的工作原理,这在React Native中是不可能的.您必须要求具有静态字符串路径的文件.你可以使用这样的开关语句 -
switch (id) {
case 'tl1': return require('../Content/top-level/tl1.json');
case 'tl2': return require('../Content/top-level/tl2.json');
...
}
Run Code Online (Sandbox Code Playgroud)
另外为什么你的json文件有.js扩展名?
| 归档时间: |
|
| 查看次数: |
663 次 |
| 最近记录: |