2017-01-31 3 views
1

У меня есть компонент, построенный с синтаксисом класса es6. Это простой компонент, который отличается простотой и стилем. Затем, в родительском компоненте (называемом приложением), я хотел бы отобразить этот компонент и дать ему onClick, который вызывает обработчик onclick родителя. До сих пор, родитель делает ребенок так:Реакция компонента не вызывает onClick handler

<child_component onClick={this.clickhandler}> 

А потом у меня есть метод в этом родительском компоненте, что я связан с контекстом родителя в конструкторе.

Компонент визуализирует, но обработчик клика никогда не вызывается, когда я нажимаю на компонент. Любая идея почему?

+0

вы проверили [этот ответ] (http://stackoverflow.com/questions/22469968/ может, мы-Attach-клик-обработчики-на-пользовательских-дети-компоненты)? –

+0

Возможный дубликат [мы можем прикреплять обработчики кликов к пользовательским дочерним компонентам] (http://stackoverflow.com/questions/22469968/can-we-attach-click-handlers-to-custom-child-components) –

ответ

4

Поскольку дочерний компонент не является родным элементом DOM, но другой компонент React, onClick, как определено здесь, просто является свойством этого компонента. Что вам нужно сделать, это, внутри компонента ребенка пройти OnClick проп к OnClick событие компонента DOM в:

var ChildComponet= React.createClass({ 
render: function() { 
return (
    <div className="childcomponent" onClick={this.props.onClick}> 
    ... 
    </div> 
); 
} 
}); 
+0

Отлично работает! Я знал, что это должно быть что-то в этом роде! – Silvertail

Смежные вопросы