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

使用API返回的JSON渲染React组件时.map方法无法显示内容

问题解决

你的代码存在三个关键问题导致渲染无内容,逐一修正即可:

1. 初始状态未定义为数组

useState()默认值是undefined,首次组件渲染时data为undefined,直接调用map会引发错误(虽然你能看到console.log输出数据,但初始渲染阶段data还未赋值)。需要将初始状态设为空数组:

const [data, setData] = useState([]);

2. map回调未返回JSX元素

你在map里用大括号包裹逻辑,但没有显式返回<h1>元素——箭头函数使用大括号时必须手动写return,或者去掉大括号用隐式返回:

  • 显式返回写法:
{data.map((item, i) => {
    return <h1 key={i}>{item.Team}</h1>
})}
  • 隐式返回写法(更简洁):
{data.map((item, i) => (
    <h1 key={i}>{item.Team}</h1>
))}

3. 字段名大小写不匹配

API返回的字段是大写首字母的Team,但你代码里写的是item.team(小写),导致无法读取到正确的值,需改为item.Team。


修正后的完整Home.js代码:

const Home = () => {

    const [data, setData] = useState([]); // 初始化为空数组
    const getData = async () => {
        try {
            const res = await fetch('url');
            const data = await res.json();
            setData(data);
            console.log(data);
        } catch (error) {
            console.log(error)
        }
    }

    useEffect(() => {
        getData();
    }, [])

    return (
        <div>
            Home
            {data.map((item, i) => (
                <h1 key={i}>{item.Team}</h1>
            ))}
        </div>
    );
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 00:45:25