簡體   English   中英

在本機中動態要求json文件(來自數千個文件)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM