反应FixedDataTable响应行/单元大小
定义固定数据表时,您可以使用rowHeight属性指定行高。 但是,如果该cell
的内容太大,则通过设置一个静态值(例如,高50个像素),会因为高度被明确设置而被切断。 我看到有一个rowHeightGetter回调函数,但该函数的参数似乎没有任何相关性(也许它可能是它得到的行?哪种有意义,但没有关于特定列或cell
的数据) 。
所以我很好奇,是否有任何方法可以使cell
(甚至有点)对它所包含的数据作出响应?
var Table = FixedDataTable.Table,
Column = FixedDataTable.Column,
Cell = FixedDataTable.Cell;
var rows = [
['a1', 'b1', 'c1'],
['a2', 'b2', 'c2'],
['a3', 'b3', 'c3'],
// .... and more
];
ReactDOM.render(
<Table
rowHeight={50}
rowsCount={rows.length}
width={500}
height={500}
headerHeight={50}>
<Column
header={<Cell>Col 1</Cell>}
cell={<Cell>Column 1 static content Column 1 static content Column 1 static content Column 1 static content Column 1 static content Column 1 static content Column 1 static content Column 1 static content Column 1 static content Column 1 static content Column 1 static content Column 1 static content Column 1 static content Column 1 static content Column 1 static content Column 1 static content Column 1 static content Column 1 static content Column 1 static content Column 1 static content Column 1 static content Column 1 static content Column 1 static content Column 1 static content Column 1 static content Column 1 static content Column 1 static content Column 1 static content Column 1 static content Column 1 static content Column 1 static content Column 1 static content Column 1 static content Column 1 static content Column 1 static content Column 1 static content Column 1 static content Column 1 static content Column 1 static content Column 1 static content Column 1 static content Column 1 static content Column 1 static content Column 1 static content Column 1 static content Column 1 static content </Cell>}
width={200}
/>
<Column
header={<Cell>Col 3</Cell>}
cell={({rowIndex, ...props}) => (
<Cell {...props}>
Data for column 3: {rows[rowIndex][2]}
</Cell>
)}
width={200}
/>
</Table>,
document.getElementById('CustomDataTable1')
);
这是一个简单的例子,但是如果/当您运行它时,您会看到第一列单元格的内容被切断,您不能看到其中包含的内容。
在这个问题上,我一直在困扰着我的头,现在还没有找到任何能帮助我的东西。 我开始认为我需要使用别的东西。 任何人都可以提供任何提示或建议?
thnx,克里斯托弗
可变的,基于呈现内容的行高,无限滚动和合理的性能是很难同时满足的要求。 固定数据表针对大型表格的快速渲染和滚动进行了优化。 为了有效地支持这一点,它需要知道数据集中的每一行在渲染之前会有多高(并且理想和最快的情况是每行具有相同的预定义高度)。
所以,如果你真的需要无限的滚动,你需要从索引中计算出每行有多大。 我想你可以实现这个方法,通过手动将本行渲染到屏幕外的纯html表中,并测量它有多高(并缓存结果),或者使用更简单的算法(例如,猜测基于合理的所需高度在内容上)。 前一种方法不可能表现得特别好,尽管我还没有尝试过。
如果您不需要无限滚动,请删除固定数据表,然后渲染一个普通的HTML <table>,它将很好地处理基于内容的行高(使用适当的CSS将其展开)。
最后的选择是实现一个梦幻般的自我调整无限滚动表组件,该组件根据每行的高度自动调整其滚动位置。 祝你好运(我认为这是可能的!)
在这个链接中,作者建议通过React.getDOMNode()。componentDidMount事件中的outerHeight检查行高。 也许你可以结合这些信息和rowHeightGetter回调来相应地调整行高。
这里有一个使用rowHeightGetter回调的例子。
链接地址: http://www.djcxy.com/p/89089.html