reactjs - 如何在 Material-UI (React) 中设置卡片高度的动画

标签 reactjs material-design

我是 React 和 Material UI 新手,所以请耐心等待:P

我想做的是,有一张卡片可以随着内容的变化动态改变高度。根据文档,这应该自动发生,而且确实如此,但我希望高度动画化为新值。

这是相关代码:

var SomeAwesomeComponent = React.createClass({

getInitialState: function(){
  return {
      text: 'Test'
  }
},

componentDidMount: function(){
  var self = this;
setInterval(function(){
    self.setState({
        text: 'Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello '
    })
  },2000)
},

render: function() {
    var cardStyle = {
        transition: '1s'
    }
    return (
        <div>
            <Card>
                <CardText transitionEnabled={true} style={{cardStyle}}>
                    {this.state.text}
                </CardText>
            </Card>
        </div>
    );
}

});

我看到的是,高度发生了变化,但它跳到了新值。我希望它“过渡”到新值。 文档说这可以使用“transitionEnabled”来完成,但我似乎无法让它工作。有人可以帮忙吗?

谢谢

最佳答案

所以我找到了一个有效的解决方案。

这更多的是 CSS 问题,而不是 React/Material-UI。

您必须在卡的两种状态下显式设置高度(并且不能为“自动”)。我所做的是,我将高度保存为组件的状态,并在我希望它展开时(当我更改文本时)更新它。

这里:

getInitialState: function(){
  return {
      text: 'Test',
      height: '10vh'
  }
},

componentDidMount: function(){
  var self = this;
setInterval(function(){
    self.setState({
        text: 'Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello ',
        height: '15vh'
    })
  },2000)
},

render: function() {
    var cardStyle = {
        display: 'block',
        width: '80vw',
        transitionDuration: '0.3s',
        height: this.state.height
    }
    return (
        <div>
            <Card style={cardStyle}>
                <CardText>
                    {this.state.text}
                </CardText>
            </Card>
        </div>
    );

我很确定这不是最好的方法,所以如果有人知道更好的解决方案,请告诉我。

谢谢:)

关于reactjs - 如何在 Material-UI (React) 中设置卡片高度的动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31151293/

相关文章:

angularjs - 确认密码验证 AngularJS Material Design

material-design - 为什么 MDC 不推荐使用 Material Design lite(MDL)?

Android TextInputLayout 遗留样式

node.js - facebook-passport 在 node.js 后端上带有react-redux

javascript - Storybook 插件文档 MDX 不适用于 Edge

android - viewpager 视差滚动和滚动时折叠工具栏

angularjs - 保持 md 选项卡标题位置固定在顶部

reactjs - 在 componentDidMount() 之后停止渲染组件

javascript - 如何将 react 钩子(Hook)内的所有状态变量传递给我的子组件

javascript - 导入 SVG 作为 react 组件