我正在将JSON导入我的JS,但是在尝试使用obj [varWithPropName]来获取其属性时遇到一些问题。
但是,它在使用obj [“ PropName”]时有效。
遵循简化的片段,希望对您有所帮助!
import * as CharInfo from '../Configs/CharInfo.json';
(...)
this.ID = "Maya";
console.log("Maya" === this.ID); //true
console.log(typeof(CharInfo)); //object
console.log(CharInfo["Maya"]); //{configs: {…}, animations: {…}}
console.log(CharInfo[this.ID]); //undefined
这不是与“控制台”相关的问题,因为在console.log之外使用时,它会在运行时中断,
Uncaught TypeError: Cannot read property 'animations' of undefined
尽管它是这样工作的,
CharInfo.default[this.ID]; //{configs: {…}, animations: {…}}
我想了解为什么在使用一些周转之前会发生这种情况,因为我没有找到遇到相同问题的人:)谢谢!
最佳答案
这应该为您解决问题
从'../Configs/CharInfo.json'导入CharInfo
问题是您默认将CharInfo.json文件中的JSON导出。就像是:
json = { /* your json */ };
export default json;
在导入时,您已经导入了
`import * as CharInfo...`
它将文件中存在的所有内容导入到新变量CharInfo中,并且默认导出json作为CharInfo对象中的默认存在。
因此,实际的json现在可以作为CharInfo.default使用。
如果您像
import CharInfo from '../Configs/CharInfo.json'
那样导入,您将在CharInfo中获取json,并且CharInfo [this.ID]可以正常工作。希望对您有所帮助,请恢复为任何问题。