gpt4 book ai didi

javascript - 动态到达时,JSON 对象属性为 "undefined"

转载 作者:行者123 更新时间:2023-11-29 23:05:21 25 4
gpt4 key购买 nike

我正在将 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: {…}}

我想了解为什么在使用一些周转之前会发生这种情况,因为我没有找到有同样问题的人:)谢谢!

最佳答案

这应该可以为您解决问题

import CharInfo from '../Configs/CharInfo.json'

问题是您默认在文件 CharInfo.json 中导出 JSON。像这样的东西:

json = { /* your json */ };
export default json;

在导入的时候,你已经导入了like

`import * as CharInfo...`  

它将文件中存在的所有内容导入到新变量 CharInfo 中,默认导出 json 作为默认值存在于 CharInfo 对象中。

因此,实际的 json 现在可以作为 CharInfo.default 使用。

如果您像 import CharInfo from '../Configs/CharInfo.json' 这样导入,您将在 CharInfo 中获取 json,而 CharInfo[this.ID] 将正常工作。

希望对您有所帮助,如有问题请回复。

关于javascript - 动态到达时,JSON 对象属性为 "undefined",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54865294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com