【问题标题】:JSON data returns undefinedJSON 数据返回未定义
【发布时间】:2021-03-12 12:00:22
【问题描述】:

在我的 react 应用程序中,我正在对来自我正在处理的应用程序后端的 JSON 数据进行简单的控制台日志。

当我控制台记录数据的主体时

console.log('........section2', options2ndSection[2]);

返回以下 JSON 数据:

Object
     item:
     id: 401
     img: "/static/media/A_F1A.05ecb02c.svg"
     label: "ceramic mug"
     __proto__: Object

我创建了一个条件,以便在标签匹配某个字符串时显示信息:

const jsonData = optionsSecondSection[2]

                {options2ndSection[2].label === 'ceramic mug' && (
                  <div className={style.informationText}>
                    {i18next.t('section.title.information_text')}
                  </div>
                )}

但是,每次我加载页面时,即使标签与预期的字符串匹配,变量也会返回 undefined。我希望如果它没有找到字符串,它不会导致整个应用程序崩溃。有什么想法吗?提前感谢您的任何回答。

【问题讨论】:

  • JSX 中的索引是1,这是故意的吗?因为你之前的代码是2。另外,您在声明后没有在任何地方使用jsonData? (顺便说一句,它是一个对象,不再是 JSON)
  • 抱歉,我在更新代码时犯了这个错误。两者都使用第二个数组。错误仍然存​​在。
  • 我们到底在说什么错误?你的
    包含undefined?因为如果该 div 完全显示,则条件检查。问题似乎是您的 i18next 调用的结果。

标签: javascript arrays json reactjs


【解决方案1】:

您正在控制台记录optionsSecondSection[2],并且您正在为optionsSecondSection[1] 运行您的条件。

如果您不希望您的应用程序崩溃,您需要检查您的 jsonData 或 optionsSecondSection[2] 是否可用。做这样的事情:

{options2ndSection[2] ? <div>
               options2ndSection[2].label === 'ceramic mug' && (
              <div className={style.informationText}>
                {i18next.t('section.title.information_text')}
              </div>
            ) 
            </div> :
            <div>'NA'</div>}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-02
    • 2022-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-20
    相关资源
    最近更新 更多