1
我有一個看起來像一個組件:力DOM更換觸發顯示動畫
class Device extends React.Component {
render() {
let indicator = <i className="i display" />;
if (this.props.n) {
indicator = <i className="n display" />;
}
return <div>{indicators}</div>;
}
}
的CSS:
.display {
animation-name: appear;
animation-duration: 1s;
}
@keyframes appear {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
這一切的偉大工程,在設備最初呈現它在褪色。
問題是,當狀態改變以將指示符從i
更改爲n
(反之亦然)時,DOM元素不會更新。我知道這是有意的,因爲React的虛擬DOM,但這實際上阻止了appear
動畫再次觸發。我需要的元素重新出現。
有什麼辦法可以再次觸發班級變更?
失敗,有什麼辦法強制React替換DOM元素,所以appear
再次被動畫?