0
私は何かを逃しているに違いありません。私はどのようにこれを行うためのさまざまな例を見てきましたが、私は私の仕事をすることはできません。私はただ一つの要素を入れ替える必要があります。React CSSTransitionGroupがクラスを適用しない
私はdiv.popup-msg
を正しく表示/非表示にしますが、遷移クラスは適用されず、明らかに要素の入れ替えが行われない状態でブール値を反転するように呼び出しています。
編集:問題が直接render()
の代わりにステートレス機能コンポーネントの内部にあった可能性があると考えて、独自のコンポーネントでポップアップを移動しようとしました。まだ運がありません。
togglePopup =() => {
let isPopupVisible = this.state.isPopupVisible;
isPopupVisible = !isPopupVisible;
this.setState({ isPopupVisible });
};
render() {
const Main =() => {
let removePopup = this.state.isPopupVisible
? <div key={1} className="popup-msg">List has Been Removed</div>
: null;
return (
<div className="main-wrapper">
<CSSTransitionGroup
transitionName="popup"
transitionEnterTimeout={700}
transitionLeaveTimeout={500}>
{removePopup}
</CSSTransitionGroup>
</div>
)
};
return (
<div className="app-wrapper">
<Route exact path="/" component={Main}/>
</div>
)
}
SASS:
.popup-enter {
transition: opacity 700ms ease-in;
opacity: 0.01;
&.popup-enter-active {
opacity: 1;
}
}
.popup-leave {
transition: opacity 500ms ease-in;
opacity: 1;
&.popup-leave-active {
opacity: 0.01;
}
}
あなたは 'transitionName =" remove-list-popup "を与えています。あなたのクラスは' popup'で始まります。あなたはそれらを同じに保つ必要があります。したがって、あなたのトランジション名が 'remove-list-popup'であれば、クラス名は' remove-list-popup-enter'と 'remove-list-popup-leave'などでなければなりません。 –
これは同じです。私はここでクラス名を読みやすくするために短縮しましたが、divでそれを変更するのを忘れました。私の悪い。私は編集しました。 –