2015-06-10 13 views
5

Próbuję zrobić małą animację na elemencie HTML, gdy wartości danych przechowywane w stanie zmienić. Jak to osiągnąć?Animacja składnika, gdy zmiany stanu w React.js

Jak dodać klasę CSS do komponentu w componentWillUpdate i usunąć ją w componentDidUpdate? Nie widzę tam żadnego odniesienia do żadnego elementu HTML.

+0

Polecam przeczytać https://facebook.github.io/react/docs/animation.html –

+0

Albo można też po prostu szukać: http://stackoverflow.com/search?q= % 5Breactjs% 5D + animacja –

+0

Próbowałem, ale użyłem złych słów kluczowych. Mam tylko kilka wyników. – sunpietro

Odpowiedz

3

Jeśli trzeba dodać klasę do komponentu: React.findDOMNode(this).classList.add("classname");

Aby usunąć: React.findDOMNode(this).classList.remove("classname");

Jeśli próbujesz dodać klasę w componentWillUpdate i usunąć go w componentDidUpdate, że trzeba używać czegoś jak setTimeout, aby zauważyć zmianę. Na przykład:

componentWillUpdate: function() { 
    React.findDOMNode(this).classList.add("class1", "class2"); 
}, 
componentDidUpdate: function() { 
    var el = React.findDOMNode(this); 
    setTimeout(function(){ 
     el.classList.remove("class1"); 
    }, 1000); 
} 
+0

Należy pamiętać, że React.findDOMNode jest przestarzałe. Zamiast tego należy użyć ReactDOM.findDOMNode z require ('react-dom'). – Spyros

+0

Prawdopodobnie będziesz chciał usunąć ten limit czasu w 'componentWillUnmount'. – IliasT

Powiązane problemy