在 React Native 中加载 JSON 大文件 (2MB)

Load big JSON files (2MB) in React Native

我在 React Native 项目中需要用 JS 进行一些昂贵的计算,我需要使用大量预先计算的数据。

我已经将它们导出到 JSON 个文件(每个 ~2MB)中,当我需要它们时我正在加载这些文件:

export const getDataShootAngle = () => {
    return [
        require('./parsed_phi1.json'),
        require('./parsed_phi2.json'),
        require('./parsed_phi3.json'),
        require('./parsed_phi4.json'),
        require('./parsed_phi5.json'),
        require('./parsed_phi6.json'),
    ];
};

但是当我这样做时出现错误:

Error: Requiring module "algorithm\data\parsed_phi6.json", which threw an exception: RangeError: Maximum call stack size exceeded, js engine: hermes

有没有办法在 React Native 中加载大量数据?我可以以二进制格式导出我的数据,但我不知道该怎么做。

此外,我想如果我只能在需要时加载数据就好了(有点像我尝试直接在函数内部使用 require() 而不是在顶部使用导入的方法文件)。

编辑: 我正在使用 Expo 开发我的应用程序,所以我正在使用 Expo Go 对其进行测试。我只是试图将它编译成一个 .apk,结果发现这个错误并没有出现在这个上下文中。我想这是 Expo Go 的一个限制,如果仍然有调试应用程序的方法就好了。

我设法自己解决了这个问题。

问题出在使用 Hermes 引擎而不是 jsc

我不知道是什么原因造成的,但至少我可以继续开发我的应用程序。

为了改回默认值,我在 app.json 文件中将 hermes 替换为 jsc :

// app.json
{
    "expo": {
        ...
        "jsEngine": "jsc",
        ...
    }
}