私は、反応成分を動かす方法を理解しようとしています。たとえば、非常にシンプルで面白いカードゲームを取る:デッキにカードを置くか、デッキから一番上のカードを取ることができます。ある反応成分から別の反応成分への移動をアニメ化する
私は4つのクラスを持っています - <Board>
には2つの<Card Collection>
: "Deck"と "Hand"コンポーネントがあります。コンストラクタでは、CardModelアイテムを生成し、<Card>
コンポーネント経由でレンダリングします。 <CardCollection>
コンポーネントには、コールバック機能を持つ特別なonCardClick
propがあります。私の場合はonCardClick={/*this is equal to <Board>*/ this.transferCard("Hand")}
Board.transferCard
は、1つのコンポーネントの状態からクリックして別のコンポーネントにプッシュします。
問題はアニメーションです - 私はカードを、好ましくはセンター(オプション!)を使って元の場所から新しい場所に飛ばしたいです。私は新しく作成されたカードを古い場所と同じ場所に「新しい場所」に置くことができますが、Reactを学ぶためにスタットしているので、どこから始めるべきかわかりません。 ReactCSSTransitionGroupをラップしますか? "animate:{x、y}から{x、y}"プロパティに<CardCollection>
に渡しますか?
したがって、この状況をアニメーション化する最も一般的で、制御可能で、「反応する」方法は何ですか?
JSFiddleベース質問バージョン:https://jsfiddle.net/fen1kz/6qxpzmm6/
JSFiddle最初のアニメーションのプロトタイプ版:https://jsfiddle.net/fen1kz/6qxpzmm6/1
私はここ<this.state.animations.map...
が好きではありません。また、Animationコンポーネントは私にとって忌み嫌われているように見えますが、これはReactの優れたアーキテクチャスタイルであるとは確信できません。
:私を気に唯一の事は、私はまだちょうど例の作業カード
の作成にそれをスローするようにCardCollection中のアニメーションの状態を持つべきであるということです。ご覧のとおり、Velocity.jsを使用しました。これは依然として容認できない解決策です。複数のカードが動作していません。また、私については、私はそれを知って反応せずにdomを操作しているということです。それが良いのかどうかわからない – Fen1kz