[英]Require json file dynamically in react-native (from thousands of files)
到目前為止,我用谷歌搜索並試圖找出解決方案,但還沒有。
我知道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”的文件。
我在本機響應方面還不夠好,只是想知道是否還有其他替代方法可以處理這數千個資源文件,並且可以通過動態遵循用戶的選擇來一次只需要一個 。
有任何建議請。
除了導出平面文件,您還可以導出帶有參數的函數,該參數將幫助構建如下路徑:
// 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')
以獲取所有路徑。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.