我正在尝试在react的TweenMax
方法中使用GreenStock componentDidMount
,但是我看到动画没有触发(但是onComplete
和'onStart
方法可以正常启动)。我根据预感尝试了几件事,发现当我为100ms添加setTimeout
时,动画会播放。直觉是在调用GreenStock时该元素还没有真正准备好。
我的印象是componentDidMount
与jquery的$(document).ready()
相似
这是我的简单代码(没有用咖啡脚本编写的settimeout:
componentDidMount: ->
commentList = React.findDOMNode(@refs.commentList)
console.log commentList
TweenMax.to commentList, 1,{opacity: 0,onComplete :-> console.log 'TL called'}
元素
commentList
已正确返回,但动画没有播放(但动画的回调在播放)这段代码有什么问题吗?还是有人知道反应和格林斯托克的tweenmax之间存在问题?
最佳答案
所以我在动画require 'uuid'
<div key={uuid()}></div>
上对DOM元素有一个唯一的键(起初我是用原始js和css3来做的,这需要重新渲染该元素),所以删除它就可以了