ReactJS与Material-UI无法渲染嵌套map数据问题求助
问题排查与修复方案
核心问题
你代码里的嵌套map函数存在外层没有返回内层map结果的问题:外层tabData.map的回调函数里,执行了内层item.content.map但没有把它的返回值return出去,导致React没有接收到要渲染的元素,所以标签页下无内容。
修复代码
把外层map的回调改为返回内层map的结果,同时给每个渲染的元素添加唯一key属性(避免React警告):
{tabData.map((item) => { // 外层map需要返回内层map生成的元素数组 return item.content.map((subItem) => ( <p key={subItem.id}>{subItem.title}</p> )); })}
或者用箭头函数的隐式返回简化写法:
{tabData.map((item) => item.content.map((subItem) => ( <p key={subItem.id}>{subItem.title}</p> )) )}
额外说明
- 旧版Material-UI的
TabPanel组件本身逻辑正常,问题出在数据渲染的map处理上 - 必须给列表项添加
key,React依赖它来高效更新DOM,优先使用数据里的唯一标识(比如subItem.id),不推荐用索引作为key
内容的提问来源于stack exchange,提问作者Galileo123
相关产品推荐
相关产品推荐

