Come svanire in un elemento quando una proprietà cambia?Reagisce l'elemento animato quando la proprietà cambia?
Mi piacerebbe che l'elemento restituito dalla funzione statusMessage()
sbiadisse ogni volta che le modifiche di this.props.statusMessage
.
Attualmente non vengono applicate animazioni. Non sembra che vengano aggiunti anche nomi di classi.
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;
}
ok, quindi non mi fa impazzire, mi sento meglio, grazie! Sembra che dovrebbe essere mooolto più facile di quello che è. Ma sono nuovo di zecca per React, quindi leggerò l'articolo e vedrò una correzione. – looshi