我正在尝试在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来做的,这需要重新渲染该元素),所以删除它就可以了

09-27 19:16