カテゴリを表すボタンのグループを含む比較的単純な使用例があります。ReactCSSTransitionGroup:新たに実装された要素とともに短期間に実装されている要素をそのまま残しておきます
これらのカテゴリボタンの1つをクリックすると、対応するサブカテゴリが下のセクションに表示されます。これらのカテゴリボタンの1つをクリックすると、クリックしたカテゴリに応じてサブカテゴリのリストが新しいサブカテゴリに置き換えられます。 (私はカテゴリーAをクリックした場合)
例は次のようになります。私はすでに1をクリックした後に別のカテゴリをクリックすると
[Category A(Clicked)] [Category B] [Category C]
_______________________________________
[Sub-Category A1] [Sub-Category A2] [Sub-Category A3]
今、問題が起こります。私は、前のアクションのサブカテゴリが短時間の間視界に残っていることに気づきます。例えばこれは、置換要素から取得し、私はすでに私はカテゴリーBをクリック
[Category A] [Category B (Clicked)] [Category C]
_______________________________________
[Sub-Category B1] [Sub-Category B2] [Sub-Category B3] [Sub-Category A1]
にもかかわらずカテゴリーAにクリックした後、カテゴリーBをクリックしたときに何が起こるかのスナップショット、およびサブカテゴリーのリストです。サブカテゴリー(カテゴリーA)の以前のリストは、短時間(数百ミリ秒で)載置されたままである。
これは、ReactCSSTransitionGroupタグにサブカテゴリセクションをラップする場合にのみ発生します。各サブカテゴリのキーはサブカテゴリの文字列名です。データベース内で一意であるため、設定されているキーに問題があるとは思われません。 ReactCSSTransitionGroupを使用している場合にのみ発生し、再び
.products-enter {
opacity: 0.01;
}
.products-enter.products-enter-active {
opacity: 1;
transition: opacity 100ms ease-in;
}
.products-leave {
opacity: 1;
}
.products-leave.products-leave-active {
opacity: 0.01;
transition: opacity 100ms ease-in;
}
:
ここ<ReactCSSTransitionGroup transitionName="products" transitionEnterTimeout={0} transitionLeaveTimeout={0}>
{
this.state.subCategories != null
?
this.state.subCategories.map((subCategoryName, index) => {
return(
<div className="product-sub-category" key={subCategoryName}>
<div className="product-image windows"><div className="overlay"><div className="wrap"><div className="category-title">{subCategoryName}</div><div className="category-subcategories">Sub-Categories: <span className="num">1</span></div></div></div></div>
</div>)
})
:
null
}
</ReactCSSTransitionGroup>
は私のアニメーションのCSSファイルでアニメーションコードです:ここで
は私のReactCSSTransitionGroupマークアップのためのコードです。そしてそれは視覚的に不快です。フェードが技術的に働いているにもかかわらず、古い要素が適切にアンマウントされるのではなく、短い時間だけ残っているという事実によって、それは完全に台無しです。