Javascript React FIXEDDATABLE响应行/单元格大小

Javascript React FIXEDDATABLE响应行/单元格大小,javascript,reactjs,fixed-data-table,Javascript,Reactjs,Fixed Data Table,定义固定数据表时,可以使用rowHeight属性指定行高。但是,如果单元格的内容太大,则通过设置静态值(例如,50像素高),它会被切断,因为高度已明确设置。我看到有一个rowHeightGetter回调函数,但该函数的参数似乎没有任何相关性(可能是它得到的行?哪种类型有意义,但与特定列或单元格的数据无关) 所以我很好奇,有没有办法让单元格对它所包含的数据做出响应(甚至有些响应) var Table = FixedDataTable.Table, Column = FixedDataTable

定义固定数据表时,可以使用rowHeight属性指定行高。但是,如果
单元格的内容太大,则通过设置静态值(例如,50像素高),它会被切断,因为高度已明确设置。我看到有一个rowHeightGetter回调函数,但该函数的参数似乎没有任何相关性(可能是它得到的行?哪种类型有意义,但与特定列或单元格的数据无关)

所以我很好奇,有没有办法让
单元格对它所包含的数据做出响应(甚至有些响应)

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')
);
var Table=FixedDataTable.Table,
Column=FixedDataTable.Column,
单元格=固定数据表。单元格;
变量行=[
['a1','b1','c1'],
['a2','b2','c2'],
[a3',b3',c3'],
//……还有更多
];
ReactDOM.render(
(
第3列的数据:{rows[rowIndex][2]}
)}
宽度={200}
/>
,
document.getElementById('CustomDataTable1')
);
这是一个简单的示例,但如果/当您运行它时,您将看到第一列单元格的内容被切断,并且不允许您查看其中包含的其他内容

在这个问题上,我已经绞尽脑汁好一阵子了,还没有找到任何对我有帮助的东西。我开始觉得我需要用点别的东西。有人能提供一些提示或建议吗

thnx,
Christoph

变量、基于行高的渲染内容、无限滚动和合理的性能是难以同时满足的要求。固定数据表经过优化,可快速呈现和滚动大型表。为了有效地支持这一点,它需要在渲染数据集中的每一行之前知道它的高度(理想且最快的情况是每一行都具有相同的预定义高度)

所以,如果你真的需要无限滚动,你需要计算出每一行有多大,仅仅从索引。我想您可以通过将行单独手动呈现到屏幕外的纯html表中,并测量其高度(并缓存结果),或者使用更简单的算法(例如,根据内容猜测合理的所需高度)来实现此方法。前一种方法不太可能表现得特别好,尽管我还没有尝试过

如果您不需要无限滚动,请删除固定的数据表,只呈现一个普通的HTML,这样可以很好地处理基于内容的行高度(使用适当的CSS以您想要的方式进行布局)

最后一个选项是实现一个奇妙的自调整无限滚动表组件,该组件在渲染后根据每行的高度自动调整其滚动位置。祝你好运(我认为这是可能的!)

在本文中,作者建议通过React.getDOMNode().outerHeight on componentDidMount事件检查行高。也许您可以将此信息与rowHeightGetter回调结合起来,相应地调整行高


这里有一个使用rowHeightGetter回调的示例。

只需提供一些基本步骤,以确保您给出了一个好的答案。