Reagieren animate-element, wenn die Eigenschaft ändert?
Wie fade-in einem element, wenn sich eine Eigenschaft ändert ?
Ich würde gerne das element zurück durch die statusMessage()
- Funktion, fade-in jeder Zeit der this.props.statusMessage
änderungen.
Derzeit keine Animationen angewendet werden. Es scheint nicht, als ob alle Klassennamen Hinzugefügt werden.
class SelectPlayer extends React.Component {
constructor(props) {
super(props);
this.handleClick = this.handleClick.bind(this);
}
handleClick() {
selectedId = this.props.selectedId;
selectedPlayerName = this.props.selectedPlayerName;
Store.dispatch(Actions.updateScore(selectedId, selectedPlayerName));
}
statusMessage() {
return (
<ReactCSSTransitionGroup
transitionName='message'
transitionAppear={true}
transitionAppearTimeout={2000}
transitionEnterTimeout={500}
transitionLeaveTimeout={500}>
<div key="1">{this.props.statusMessage.text}</div>
</ReactCSSTransitionGroup>
)
}
render() {
if (this.props.selectedPlayerName) {
return (
<div className="details">
<div className="name">{this.props.selectedPlayerName}</div>
<button className="inc" onClick={this.handleClick}>
Add 5 points
</button>
{ this.statusMessage() }
</div>
);
}
else {
return (
<div className="message">Click a player to select</div>
);
}
}
};
CSS
.message {
line-height: 2.25rem;
text-align: center;
}
.message-appear {
opacity: 0.01;
}
.message-appear.message-appear-active{
opacity: 1;
}
InformationsquelleAutor looshi | 2016-01-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich hatte ein ähnliches Problem vor ein paar Wochen. Das Problem ist, dass die
ReactCSSTransitionGroup
muss gerendert werden, bevor es die Kinder. In deinem Beispiel beideReactCSSTransitionGroup
undthis.props.statusMessage.text
dargestellt wird, zur gleichen Zeit, wennthis.props.selectedPlayerName === true
.Ich fand diesen Artikel, die nützlich sein könnten: hier
InformationsquelleAutor Geraint
Könnte dies einfacher sein, mit reagieren-animiert-auf-ändern (disclaimer, ich bin der Autor).
Render-würden Sie so etwas tun:
Und verwenden Sie dann animation in CSS:
Ist es schwer vorstellbar, wie Sie wollen, das Ergebnis zu sein. Aber zu den Klängen der es, Sie haben eine Spieler-Liste, die angeklickt werden können und dann eine Ansicht der ausgewählten Spieler? In diesem Fall sollten Sie lieber ein array mit den ausgewählten Spieler und Verwendung ReactCSSTransitionGroup zu Rendern Spieler betreten/verlassen des array.
src
- Attribut eines Bildes geändert wird?Hängt davon ab, wie
src
geändert wird. Über DOM? Über einen prop? Schauen Sie sich die Dokumentation auf animieren-on-change. Wenn etwas unklar ist, bitte öffnen Sie ein Thema mit code zum reproduzieren des Problems.InformationsquelleAutor arve0
Die offizielle Dokumentation besagt, dass Sie brauchen, um eine wichtige für jedes element innerhalb ReactCSSTransitionGroup
Reagieren, verwendet die Schlüssel für die DOM-manipulation. So sollte es eindeutig sein. Auch aus meiner Erfahrung sollten Sie haben transitionAppear und transitionEnter identisch konfiguriert, so dass die anfängliche animation und animation für die änderung, sieht genauso aus.
So müssen Sie einige eindeutige Schlüssel (oder zumindest den Unterschied zwischen dem aktuellen Zustand (oder stützen) und nächsten Zustand (oder die stützen) der child-element für jede änderung) für die ReactCSSTransitionGroup
Können Sie aus JSFIDDLE zu sehen, wie es funktioniert.
HINWEIS, die ich verwendet habe
{dies.Zustand.name} wie einen Schlüssel, so funktioniert es in meinem Beispiel. Aber in einer realen Anwendung ich glaube, Sie sollten etwas anderes als ein Schlüssel
InformationsquelleAutor Sim Dim