[英]JSON object property is "undefined" when dynamically reached
我正在将 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'
这样import CharInfo from '../Configs/CharInfo.json'
您将在 CharInfo 中获得 json,而 CharInfo[this.ID] 将正常工作。
希望有帮助,如有问题请回复。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.