reactjs 如何使React js Material-UI表具有响应性并使其具有相等的列间距?

abithluo  于 2023-03-17  发布在  React
关注(0)|答案(5)|浏览(172)

我正在使用material-ui中的MaterialTable,但遇到了两个问题。

**1.**我如何使我的列间距相等,因为在前两列之后,有一个巨大的和不必要的空间到第三列。
**2.**此特定表没有响应,如何使其响应?

<MaterialTable
        title="All Surveys"
        columns={this.state.columns}
        data={this.state.data}
        options={{
          actionsColumnIndex: -1,
          exportButton: true,
          draggable: true,
        }}
        editable={{
          onRowAdd: (newData) => this.addNew(newData),
          onRowUpdate: (newData, oldData) => this.update(newData, oldData),
          onRowDelete: (oldData) => this.delete(oldData),
        }}
      />
  • 从下图中,您可以看到第2行和第3行

    之间存在不必要的空间
  • 从下图中,您可以看到检查床在移动的大小

    上没有响应
omvjsjqw

omvjsjqw1#

您可以在列之间实现相等的间距,然后您应该执行以下操作:
<Table>使用table-layout: 'fixed' CSS prop,使所有列具有相同的宽度,并在每个表单元格上结合white-space: 'nowrap'来处理溢出。
要实现响应式表格布局,以下操作可能会有所帮助:here

qjp7pelc

qjp7pelc2#

@Shadow步行者,For setting column width...尝试为每个表格单元格设置一个类,然后设置它的宽度。考虑一下如果只有两列,并且在每个单元格宽度上设置为100%,它将均匀地对齐间距或使每个单元格占50%。您可以将此与其他列的像素大小混合(考虑如果在每前两个单元上50 px,在它们之后,其他单元格可以取一个百分比,它在设置px宽度后是合理的),然后我所做的更响应的感觉是隐藏断点上的单元格类。('sm')或相应地调整大小。不确定是否是最好的方法,但经过昨晚的尝试,我对表格对不同屏幕大小的响应以及我的列间距感到满意。

kuarbcqp

kuarbcqp3#

我通过将此CSS代码添加到.table类来实现。
注意:它水平滚动,看起来不知何故很好。

.table {
width:'95%',
display:'block',
overflowX:'auto'
}
w6lpcovy

w6lpcovy4#

您可以使用flex属性并为每列设置成比例的宽度:

columns = [{
  headerName: "Name",
field: "name",
flex: 1
},
{
  headerName: "Age",
field: "age",
flex: 1
},]

更多信息在mui网站:https://mui.com/components/data-grid/columns/#fluid-width

kqqjbcuj

kqqjbcuj5#

如果您使用material-ui,您可以通过调整TableContainer的最小宽度来处理移动的响应,TableContainer是Table的父元素。
谢谢!

相关问题