2016-08-14 6 views
0

У меня есть компонент реакции, который принимает два других компонента, первый из которых всегда отображается, а второй - только в том случае, если компонент выбран.Анимационный компонент сразу после рендеринга

ExpandableItem:

const propTypes = { 
    header: PropTypes.element.isRequired, 
    content: PropTypes.element.isRequired, 
    isSelected: PropTypes.bool.isRequired 
}; 

export default class ExpandableItem extends React.Component { 
    render() { 
     return (<li> 
      {this.props.header} 
      {this.props.isSelected && this.props.content} 
     </li>); 
    } 
} 

ExpandableItem.propTypes = propTypes; 

И когда содержание становится видимым, высота компонента становится гораздо больше, и я хочу, чтобы это было в анимации.

как я могу это сделать?

+1

Вы смотрели в [ 'ReactCSSTransitionGroup'] (https://facebook.github.io/react/docs/animation.html)? –

ответ

0

почему бы не использовать @keyframes и @ -moz-keframes с классами CSS

+0

попробовал это и не смог, можете ли вы привести пример? – Pachu

+0

добавьте css-класс к вашему компоненту, например «my-component» , затем в ваш файл css добавьте следующие: .my-component { анимация: myAnim 0.3s легкость; animation-fill-mode: forwards; переполнение: скрыто; } @keyframes myAnim { 0% { высота: 0; } 100% { высота: авто; } } – kiarashws

Смежные вопросы