我可以将事件处理程序附加到React组件。有没有一种方法可以在事件处理程序内部获取对该组件的引用?
var Foobar = React.createClass({
action: function () {
// ...
},
render: function () {
var child = React.Children.only(this.props.children),
props = _.omit(this.props, 'children');
return React.addons.cloneWithProps(child, props);
}
});
var App = React.createClass({
handleMouseEnter: function (event) {
// How to get reference to Foobar without using this.refs['foo']?
// I need to call *action* on it.
},
render: function () {
return (
<div>
<Foobar ref="foo" onMouseEnter={this.handleMouseEnter}>
...
</Foobar>
</div>
);
}
});
Foobar
组件内定义handleMouseEnter
并通过this
访问它呢? - daniulaFoobar.action
方法可能会作为onClick
事件的结果被调用,而不仅仅是onMouseEnter
。 - vbarbaroshaction
应该在 Foobar 实例上定义。this.refs.foo.action()
对你无效吗? - Ross Allenthis.refs.foo
能够工作,为什么你不想这样做呢? - Ross Allen