我有几个本地JSON文件,我想根据从route.params 获得的值动态获取它们
当我使用import "../data/data.json"
时,它是有效的,但是route.params值当时不可用。
当我也使用const data = require("../data/data.json")
时,它在files目录是静态的时工作,而我试图使其动态,但它不工作。(我读过stackerflow关于为什么没有的回答(。我想知道的是如何动态获取本地.json文件?
我尝试过的一些代码片段:
const data = require(`../Quizes/${cat}/${subcat}/data.json`)
其中cat和subcat是路线参数
axios.get(`../Quizes/${cat}/${subcat}/data.json`, {headers})
.then(res => console.log(res))
.catch(err => console.log(err.message));
console.log(post)
}, []);
有了以上内容,我得到了网络错误
我还尝试使用setTimeout来延迟const data = require(
/测试/${cat}/${subcat}/data.json)
,以便首先加载cat和subcat,但仍然不起作用。
您可以将所有文件预加载到对象中,然后只需选择正确的
示例:
import Cat1subCat1 from '../../data.json'
import Cat1subCat2 from '../../data.json'
import Cat2subCat1 from '../../data.json'
import Cat2subCat2 from '../../data.json'
function selectCategory(cat, subCat) {
const categories = {
cat1: { Cat1subCat1, Cat1subCat2 },
cat2: { Cat2subCat1, Cat2subCat2 },
// etc
}
return categories[cat][subCat]
}