【发布时间】:2016-10-07 05:16:49
【问题描述】:
我创建了一个由 slideUp() 和 slideDown() 动画组成的反应组件。我已经使用 jQuery slideup 和 slidedown 方法实现了。
我必须使用反应动画来实现这个功能。
我了解了 ReactTransitionGroup 和 ReactCSSTransitionGroup。解释的方式告诉我,我们可以在 DomNode 安装到组件或卸载时执行此功能(如果我错了,请纠正我)。
我的问题是 --> 如何在不使用 jQuery 的情况下以反应方式进行 slideup() 和 slidedown()。
请参阅此 jsFiddle 以获取 https://jsfiddle.net/guc3yrm1/
P.S -> 请解释一下为什么这个反应动画部分与 jQuery 相比似乎有点困难(我是一个 jQuery 人)
var Hello = React.createClass({
getInitialState: function() {
return {
slide: false,
}
},
slide: function() {
if (this.state.slide) {
$(this.refs.slide).slideDown();
this.setState({
slide: false
});
} else {
$(this.refs.slide).slideUp();
this.setState({
slide: true
});
}
},
render: function() {
return (
<div>
<input type = "button" value = "clickme" onClick = {this.slide}/>
<br />
<br />
<div className = "slide" ref="slide" >< /div>
</div>
);
}
});
ReactDOM.render( < Hello name = "World" / > ,
document.getElementById('container')
);
【问题讨论】:
-
只是好奇:你为什么不想在这里使用 jQuery?
-
@Chris 我可以在 jQuery 的帮助下做到这一点。我很好奇如何在 reactTransitionAPI 中为反应组件中的静态内容执行此操作。最终我们可以通过使用 react 方式避免不必要的重新渲染
标签: javascript jquery reactjs