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

JSX中HTML列表渲染无内容:如何正确输出列表名称?

解决JSX中<ul>无法渲染列表项的问题

先排查核心问题,再给出优化后的实现方案:

1. 先确认数据源有效性

你的代码依赖jsonData.data.campaigns.list,首先要确保这个数组真实存在且包含数据:

  • 在循环前执行console.log(jsonData.data.campaigns.list),查看输出是否为预期的非空数组。
  • 如果是异步获取的数据,必须确保在数据加载完成后再执行渲染逻辑(比如放在useEffect钩子中,或通过条件渲染判断数据是否就绪)。

2. 替换for循环为数组map方法(更符合React开发习惯)

用var声明变量存在作用域提升隐患,改用map方法不仅代码更简洁,还能规避这类问题:

// 先做数据存在性校验,避免空值报错
if (!jsonData?.data?.campaigns?.list) {
  return <ul><li>暂无数据</li></ul>;
}

// 用map生成列表项
const seasonsList = jsonData.data.campaigns.list.map((item, index) => (
  <li key={item.id || index}>{item.name}</li>
));

return <ul>{seasonsList}</ul>;

3. 关于key的最佳实践

尽量避免用数组索引作为key(除非列表是静态、不会发生排序/增删操作),优先使用每个列表项的唯一标识(比如item.id),这样React能更高效地更新DOM。

调试小技巧

如果仍无法渲染,可在return语句前打印生成的数组,确认是否真的创建了React元素:

console.log(seasonsList); // 正常情况下会看到包含<li>元素的数组

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 12:57:10