我有一个使用es6类语法构建的组件。它是一个简单的组件,只有多样化和一些风格。然后,在父组件(称为app)上,我想渲染该组件并为其提供一个调用父级onclick处理程序的onClick。到目前为止,父母像这样渲染孩子:
<child_component onClick={this.clickhandler}>
然后我在该父组件中有一个方法,我已经绑定到构造函数中的父上下文。
组件呈现,但单击组件时从不调用单击处理程序。知道为什么吗?
答案 0 :(得分:5)
由于子组件不是本机DOM元素,但是另一个React组件,此处定义的onClick只是该组件的属性。您需要做的是,在子组件内部将onClick prop传递给DOM组件的onClick事件:
var ChildComponet= React.createClass({
render: function() {
return (
<div className="childcomponent" onClick={this.props.onClick}>
...
</div>
);
}
});