我正在尝试迁移一个在Meteor之外编写的React组件,以便在Meteor中运行。我遇到的问题是没有定义jQuery($)。我完全理解在很多情况下使用jQuery并不是必需的,甚至在React中也不赞成。话虽这么说,Meteor目前默认安装jQuery。能够使用jQuery动画将帮助我克服React的ReactTransitionGroup和ReactCSSTransitionGroup组件的限制。我不能简单地添加一个到jQuery CDN的链接,因为这会导致jQuery被加载两次!一次来自CDN,一次来自Meteor。
我的问题是我不知道如何从React组件中访问Meteor的jQuery。
以下是我的某个组件的摘录:
componentWillReceiveProps: function(nextProps) {
if (nextProps.slideDirection !== this.props.slideDirection) {
this.setState({ slideDirection: nextProps.slideDirection })
var $el = $(this.getDOMNode());
if (nextProps.slideDirection.trim() === 'down') { console.log('= down'); } else { console.log('!= down'); }
switch (nextProps.slideDirection.trim()) {
case 'up':
$el.slideUp('animationDuration: 400');
break;
case 'down':
$el.slideDown('animationDuration: 400');
break;
default:
}
}
},
整个周末我真的很挣扎。我“真的”希望能够在这种情况下使用jQuery来实现动画效果。我试图动画DIV高度扩展以及正文的可见性。使用jQuery的slideup和slidingown可以很容易地实现这一点。非常感谢任何帮助!
答案 0 :(得分:1)
这应该有效。确保你甚至在项目中添加了jquery。
$ meteor add jquery