ios - 在 react-native 中动态地需要 json 文件(来自数千个文件)
问题描述
到目前为止,我用谷歌搜索并试图找出解决方案,但还没有。
我知道 require() 仅适用于静态路径,所以我想要其他方法来解决我的问题。我在这里找到了这个答案,但它对成千上万的资源没有意义。
请告诉我处理这种情况的最佳方法。
背景
我有数千个包含应用程序数据的 json 文件,并动态声明了所有文件路径,如下所示:
export var SRC_PATH = {
bible_version_inv: {
"kjv-ot": "data/bibles/Bible_KJV_OT_%s.txt",
"kjv-nt": "data/bibles/Bible_KJV_NT_%s.txt",
"lct-ot": "data/bibles/Bible_LCT_OT_%s.txt",
"lct-nt": "data/bibles/Bible_LCT_NT_%s.txt",
"leb": "data/bibles/leb_%s.txt",
"net": "data/bibles/net_%s.txt",
"bhs": "data/bibles/bhs_%s.txt",
"n1904": "data/bibles/na_%s.txt",
.....
"esv": "data/bibles/esv_%s.txt",
.....
},
....
如您所见,文件路径包含“%s”,应该用正确的字符串替换取决于用户选择的内容。
例如,如果用户选择圣经(缩写:“kjv-ot”)和第 1 章,则应导入名为“data/bibles/Bible_KJV_OT_01.txt”的文件。
我在 react-native 方面还不够好,只是想知道是否还有其他替代方法来处理这数千个资源文件,并且通过动态跟随用户的选择一次只需要一个。
请有任何建议。
解决方案
您可以导出一个带有参数的函数,而不是导出一个平面文件,这将有助于构建如下路径:
// fileInclude.js
export const generateSourcePath = (sub) => {
return {
bible_version_inv: {
"kjv-ot": `data/bibles/Bible_KJV_OT_${sub}.txt`
}
}
}
//usingFile.js
const generation = require('./fileInclude.js');
const myFile = generation.generateSourcePath('mySub');
const requiredFile = require(myFile);
然后您将导入(或要求)此项目到您的项目中,执行generateSourcePath('mysub')
以获取所有路径。
推荐阅读
- javascript - 在js中的静态函数中将对象作为参数传递
- reactjs - 从反应应用程序读取 kubernetes pod 的 configmap 中设置的环境变量?
- powershell - GCP API - tagamanger REST API - powershell - 域验证
- android - 活动无法从广播接收器开始
- jquery - 如何制作像输入类型单选按钮一样工作的 div html 标签?
- python - Scrapy - 从 javascript 脚本响应中检索身份验证令牌
- ios - 你如何对 UICollectionView 单元格性能进行基准测试?
- google-app-engine - 第一个数据存储区查询总是很慢
- extjs - Extjs Grid在childlongpress后防止childtap
- reactjs - Reactjs中的日期时间格式排序问题