react-bootstrap-table 宽度有问题

Posted

技术标签:

【中文标题】react-bootstrap-table 宽度有问题【英文标题】:Trouble with react-bootstrap-table width 【发布时间】:2018-02-10 17:00:54 【问题描述】:

我使用react-bootstrap-table 并且需要垂直滚动。 我的代码:

<BootstrapTable data=products hover>
      <TableHeaderColumn isKey dataField='id' width='10%'>
          Product ID
      </TableHeaderColumn>
      <TableHeaderColumn dataField='name'>
          Product Name
      </TableHeaderColumn>
      <TableHeaderColumn dataField='price'>Product Price</TableHeaderColumn>
</BootstrapTable>

这段代码工作正常,我得到了自动宽度可调整大小的表格。 之后,我添加了下一个键:

<BootstrapTable data=products hover height='200px'>

并且遇到了100% width 的问题,我没有调整表格宽度,而是得到了一个如下图所示的滚动条:

我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

只是想在此处添加此内容,因为我花了很多时间试图弄清楚在使用扩展行时如何解决错位问题。

所有这些仅适用于表格具有垂直滚动条的情况。

我有一个独特的问题,我有一个影响表格宽度的可折叠侧边栏。当侧边栏折叠并展开行时,表格会自动调整列宽。当我重新折叠侧边栏时,表格太宽并导致水平滚动条。除此之外,每次用户展开一行时,表格都会重新计算列宽。

我的解决方案是在渲染过程中去掉垂直滚动条:

componentWillUpdate()
    document.querySelector('.react-bs-table-container').style.height = "auto"

componentDidUpdate()
    document.querySelector('.react-bs-table-container').style.height = "100%"

componentWillUpdate 即将停用,但目前它运行良好。

【讨论】:

【参考方案2】:

我还打开了issue,图书馆的创建者提出了解决方案:

您必须在BootstrapTable 上添加printable

另外,我也在BootstrapTable 上添加了bodyStyle=overflow: 'overlay'

【讨论】:

以上是关于react-bootstrap-table 宽度有问题的主要内容,如果未能解决你的问题,请参考以下文章

从 react-bootstrap-table2 的列渲染器中使用 Location hook 获取位置路径

UNMET PEER DEPENDENCY react-router@3.0.0

怎么让android中的GridView的item有不同的宽度

是否有相当于css中的“初始宽度”的东西

设置一个div里面有当前窗口的宽度,当窗口宽度改变,DIV里面的宽度值也改变, resize 事件。用JQUREY

宽度 100%,周围有白色边框。为啥?