直截了当-我已经尝试将display样式参数从block替换为flex,对于flexDirection: 'column'组件用CardActionArea替换。这样做的原因是要确保CardContent连续的每个Card高度都相同-这是我实现的。但是... CardHeaderCardContent在更改width: '100%'后无法达到display。下图应阐明我的意思。

javascript - React.js Material UI-具有Flex显示功能的CardActionArea-子元素不使用全 Angular-LMLPHP
以下是相关代码

渲染

<Card className={classes.card}>
  <CardActionArea
    className={classes.cardActionArea}
    onClick={this.loadGroup}
  >
    <CardHeader
      avatar={
        <FolderIcon />
      }
      classes={{
        root: classes.header,
        title: classes.headerTitle,
        subheader: classes.headerSubheader
      }}
      title={this.state.group.name}
      subheader={this.renderModuleCount()}
    />
    <CardContent className={classes.content}>
      {this.renderContent()}
    </CardContent>
  </CardActionArea>
  <CardActions className={classes.actions}>
    <IconButton onClick={this.showDialog}>
      <DeleteIcon />
    </IconButton>
  </CardActions>
</Card>


样式

card: {
  width: '30%',
  margin: theme.spacing(1),
  display: 'flex',
  flexDirection: 'column',
},
cardActionArea: {
  flexGrow: 1,
  display: 'flex',
  flexDirection: 'column'
},
header: {
  backgroundColor: theme.palette.secondary.main,
  color: theme.palette.secondary.contrastText,
  width: '100%',
},
headerTitle: {
  color: theme.palette.secondary.contrastText,
},
headerSubheader: {
  color: theme.palette.secondary.contrastText,
},
content: {
  flexGrow: 1,
},


我正在寻找如何解决这个问题。我在paddingmargin MUI组件上找不到任何ButtonBaseCardActionArea

最佳答案

终于我找到了解决方案。样式类cardActionArea需要使用以下内容:

cardActionArea: {
  flexGrow: 1,
  flexDirection: 'column',
  alignItems: 'stretch',
},

结果:
javascript - React.js Material UI-具有Flex显示功能的CardActionArea-子元素不使用全 Angular-LMLPHP

09-25 19:17