react-virtualized 渲染空白怎么办?
我用 react-virtualized 的 List 组件渲染一个长列表,数据都有,但页面显示一片空白,滚动条也没高度。
检查了 rowHeight 和 rowCount,都传了正确的值。控制台也没报错,就是不显示内容。是不是漏了什么关键配置?
我的代码大概是这样:
const rowRenderer = ({ index, key, style }) => (
<div key={key} style={style}>
{items[index].name}
</div>
);
return (
<List
width={400}
height={600}
rowCount={items.length}
rowHeight={50}
rowRenderer={rowRenderer}
/>
);
首先确认
items数组确实有数据,并且每个元素都有name属性。有时候数据结构不对会导致渲染失败。接着看看父容器的样式,确保它没有设置影响布局的属性。比如
overflow:hidden可能会隐藏内容。还有一个容易忽略的地方:记得给 List 组件加上
containerStyle属性,设置明确的高度和宽度。虽然你已经定义了宽高,但显式指定更保险。我建议修改 rowRenderer 为这样:
注意这里用了可选链操作符 ?. 避免空值报错,同时给 div 加了个 overflow 样式。
最后提醒下安全问题:如果
items.name是用户输入的内容,记得做适当的转义处理,防止 XSS 攻击。虽然这跟当前空白问题无关,但开发中要时刻注意安全性。