我正在尝试找出如何动画移动React组件。例如,采取非常简单但有趣的纸牌游戏:您可以将任何卡放入牌堆中,或从牌堆中取出顶部卡。
为了使其工作,我有4个类 - 持有两个:“Deck”和“Hand”组件。在构造函数中,它们生成CardModel项目,并通过组件呈现它们。 组件具有特殊的onCardClick prop,它需要回调函数。在我的情况下,它是
问题在于动画 - 我希望卡片飞行,最好是通过中心(可选!)从旧位置到新位置。我能够将新创建的Card放置在“新位置”,并与旧组件放置在同一位置,但是,由于我刚开始学习React,我不确定应该从哪里开始。在ReactCSSTransitionGroup中包装?将“animate:from{x,y}to{x,y}”属性传递给?
因此,完整的问题是什么是最通用,可控且“反应”的方法来动画化这种情况?
JSFiddle基础问题版本:https://jsfiddle.net/fen1kz/6qxpzmm6/ JSFiddle第一个动画原型版本:https://jsfiddle.net/fen1kz/6qxpzmm6/1 我不喜欢
为了使其工作,我有4个类 - 持有两个:“Deck”和“Hand”组件。在构造函数中,它们生成CardModel项目,并通过组件呈现它们。 组件具有特殊的onCardClick prop,它需要回调函数。在我的情况下,它是
onCardClick={/*this is equal to <Board>*/ this.transferCard("Hand")}
Board.transferCard从一个组件的状态中获取已点击的CardModel,并将其推送到另一个组件。问题在于动画 - 我希望卡片飞行,最好是通过中心(可选!)从旧位置到新位置。我能够将新创建的Card放置在“新位置”,并与旧组件放置在同一位置,但是,由于我刚开始学习React,我不确定应该从哪里开始。在ReactCSSTransitionGroup中包装?将“animate:from{x,y}to{x,y}”属性传递给?
因此,完整的问题是什么是最通用,可控且“反应”的方法来动画化这种情况?
JSFiddle基础问题版本:https://jsfiddle.net/fen1kz/6qxpzmm6/ JSFiddle第一个动画原型版本:https://jsfiddle.net/fen1kz/6qxpzmm6/1 我不喜欢
<this.state.animations.map...
在这里。此外,Animation组件对我来说看起来像是一种可怕的东西,我不确定这是否是React的良好架构风格。