Material UI TableCell组件无法显示对象内容,同逻辑Title组件可正常显示
问题排查方向
- 多语言键名不匹配:这是最高概率的原因。你的
language.record可以正常渲染,说明language对象本身取值正常,只有TableCell中调用的subject、group、type等属性不存在,大概率是拼写、大小写不匹配,比如实际多语言配置里的键为驼峰格式Subject、qualificationDate,和你代码中写的全小写连写格式不一致。属性不存在时返回undefined,React渲染undefined会显示为空,不会触发控制台报错。
你可以在RecordContent的return前加一行console.log(language),对比控制台输出的对象键名和你代码中调用的是否完全一致。 - Table布局被挤压:外层
Paper设置了display: flex、flexDirection: 'column',内部Table默认未指定宽度,可能被flex布局挤压导致内容溢出隐藏。给Table组件添加宽度配置即可修复:<Table size="small" sx={{ width: '100%' }}> - 样式颜色冲突:检查你自定义的
mdTheme中是否配置了TableCell的字体颜色和当前页面背景色一致,导致内容透明不可见。可以临时给不显示的TableCell添加测试样式验证:<TableCell sx={{ color: 'red' }}>{language.subject}</TableCell> - 冗余状态取值错误(潜在风险):你的
Record类组件在constructor中初始化了selectedLanguage、repos到内部state,但render时是从this.props解构取值。如果父组件未传递对应props、且你原本是要使用内部state的话,需要修改解构来源为this.state:const { selectedLanguage, repos, error } = this.state
内容的提问来源于stack exchange,提问作者Julen Clarke
相关产品推荐
相关产品推荐

