You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在React的map函数中使用state作为JSON动态键出现报错如何解决

问题解决说明

核心错误点

你使用的dataArray.dynamicState写法是固定读取对象下名为dynamicState的属性,而你的JSON结构中不存在该键,因此会返回undefined,调用map方法自然报错。如果要使用变量的值作为对象的键读取属性,必须使用JavaScript的方括号动态属性访问语法。

修正后的完整代码

import { useState } from 'react';
import dataJson from "./data/data.json"

function App() {  
  const [dynamicState, setDynamicState] = useState("EN");
  // 用方括号读取动态state对应的语言数据
  const currentLangData = dataJson[dynamicState];

  return ( 
  <div>
    <div className="container">   
      {/* 可选链?.避免dynamicState取值异常时页面崩溃 */}
      {currentLangData?.map((estacion) => (
        <div className="cardEstacion" key={estacion.id}>
          <h2 className="cardTitle">{estacion.title}</h2>
          <p className="cardSubtitle">{estacion.subTitle}</p>
        </div>
      ))}      
    </div>
  </div>
  );
}

额外修正点

你原代码中HTML标签使用了class属性,在React中DOM类名需要写为className,否则会触发属性不匹配的控制台警告。

内容的提问来源于stack exchange,提问作者tomigeme

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 06:45:02