这是我想要做的事情的一小部分:https://jsfiddle.net/s7s07chm/7/
但是我想用反应而不是jquery来做这件事。基本上,我将元素的className
放在状态中,并在componentDidMount
上更新className以启动转换。
但这不起作用。该组件只是在转换状态下呈现。换句话说,它不是向下滑动,而是从头开始显示在底部
我这样做错了吗? 如果是这样,还有另一种方法可以实现这一目标吗?
这里是实际代码
getInitialState: function() {
return {
childClass: 'child'
};
},
componentDidMount: function() {
this.setState({
childClass: 'child low'
});
},
答案 0 :(得分:2)
无效的原因是因为在装入组件之前不会更新DOM。因此,您使用getInitialState
分配的课程将永远不会出现在DOM中,但您使用componentDidMount
设置的课程将会出现。正如Ray所说,你应该看看ReactCSSTransitionGroup。
答案 1 :(得分:0)
componentDidMount
,但浏览器可能还没有完成绘制。
但是,您可以使用requestAnimationFrame
来确保在浏览器完成绘制组件后调用setState。
componentDidMount() {
requestAnimationFrame(() => this.setState({
childClass: 'child low'
}))
}