2014-11-13 22 views
6

Bir bileşen (veya sayfa bile) tamamen oluşturulduktan sonra bir css sınıfında geçiş yapmam gerekiyor, böylece ilgili özellikler sayfa yükleme sırasında canlandırılıyor.ReactJS: Css geçişi için geçiş yap geçişi

Bunu yapmayı, tercihen jQuery olmadan nasıl yaparım?

Bir bileşenin sınıfını componentDidMount içinde değiştirirseniz, animasyon aslında gerçekleşmez.

+1

minimum örnek veya kod parçasını verin, bu yüzden ... – LcSalazar

+1

.toggleClass gelecekte yararlı bir kaynak olacaktır, daha iyi bir cevap verebilir? http://api.jquery.com/toggleclass/ –

+0

Soru nedir? –

cevap

15

ı did not aslında söylemek kısmını almak: ilgili özellikler sayfa yüklemesinde animasyonlu böylece tamamen oluşturulur

bir bileşenidir (hatta sayfa) sonra.

Öğeyi tam olarak ne zaman canlandırmak istersiniz? Render() işlevinde sınıf adını belirtirseniz, bileşen sayfa yüklendiğinde animasyon ile oluşturulur. İlk işlemek sonra/geçiş animasyonu denetlemek istiyorsanız

, bunu böyle bileşen devlet kullanarak sınıf adını kontrol edebilirsiniz:

İşte
var Hello = React.createClass({ 

    getInitialState: function(){ 
     return { 
      condition:false 
     } 
    }, 

    handleClick :function(){ 
     this.setState({ condition : !this.state.condition }); 
    }, 

    render: function() { 
     return <div> 
       <div className={this.state.condition ? "animated" :""} >Hello {this.props.name}</div> 
       <button type="button" onClick={this.handleClick}>Change Condition</button> 

       </div>; 
    } 
}); 

React.render(<Hello name="World" />, document.body); 

Bir düğme tıklaması yanıt olarak devlet değişti. Bunu muhtemelen beğeneceğiniz başka bir etkinliğe değiştirmek isteyebilirsiniz. Siz de geçiş sınıfını kullanarak bunu yapabilirsiniz http://jsfiddle.net/f0j4kt0L/

+2

Yapmak istediğim şey, sayfa yüklendikten hemen sonra animasyonu yüklemek. Tam olarak önerdiğin şeyi denedim, bunun yerine componentDidMount yönteminde 'this.state.condition 'değerini değiştirdim. Css sınıfı, geçiş yapılmadan bu durumda hemen uygulanır. –

+1

Bu satırı değiştirdiğinizde ne olur? '

Hello {this.props.name}
'? Sadece sayfa yükleme üzerinde çalışmıyor mu: http://jsfiddle.net/3fmfous3/? – nilgun

+1

Bu, süper yararlı bir gösteriydi. gerçekten benim için açıklığa kavuşturdu. – Jake

2

: Burada

yukarıdaki kodu için bir keman olduğunu.

var node = ReactDOM.findDOMNode(this.refs.el); 
node.classList.toggle('menu-open');