2015-06-10 11 views
5

Ich versuche, eine kleine Animation auf HTML-Element zu machen, wenn Datenwerte im Zustand zu ändern. Wie kann das erreicht werden?Animieren Komponente, wenn sich der Zustand ändert in React.js

Wie kann ich eine CSS-Klasse zu Komponente in componentWillUpdate hinzufügen und in componentDidUpdate entfernen? Ich sehe dort keinen Verweis auf ein HTML-Element.

+0

Ich empfehle https://facebook.github.io/react/docs/animation.html –

+0

zu lesen Oder Sie könnten auch einfach suchen: http://stackoverflow.com/search?q= % 5Breactjs% 5D + Animation –

+0

Ich habe versucht, aber ich habe falsche Schlüsselwörter verwendet. Ich habe nur ein paar Ergebnisse. – sunpietro

Antwort

3

Wenn Sie eine Klasse zu einer Komponente hinzufügen müssen: React.findDOMNode(this).classList.add("classname");

zu entfernen: React.findDOMNode(this).classList.remove("classname");

Wenn Sie versuchen, eine Klasse in componentWillUpdate hinzufügen und entfernen es in componentDidUpdate, dann würden Sie brauchen etwas wie ein setTimeout zu verwenden, um eine Änderung zu bemerken. Zum Beispiel:

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

Beachten Sie, dass React.findDOMNode veraltet ist. Verwenden Sie stattdessen ReactDOM.findDOMNode von require ('reac-dom'). – Spyros

+0

Sie werden dieses Timeout wahrscheinlich in 'componentWillUnmount' löschen wollen. – IliasT

Verwandte Themen