Я пытаюсь захватить все обработчики кнопок из глобального метода и вручную запускать обработчик, если выполняется определенное условие. Простой пример здесь: http://jsfiddle.net/zvy80mpf/Hijack React handler function
var clickHandler = function(e) {
console.log(e.target); // Button
// I want to hijack the component handler here and trigger it manually
}
var Hello = React.createClass({
handler: function() {
console.log('component onclick');
},
render: function() {
return (
<div onClick={this.props.clickHandler}>
<button handler={this.handler}>Hello</button>
</div>
);
}
});
React.renderComponent(<Hello clickHandler={clickHandler} />, document.body);
Я знаю, что я могу передать функцию handler
, но я хочу, чтобы получить доступ обработчиков из глобального контекста, без изменения внутренних компонентов.
В jQuery вы можете сделать это с помощью $._data(element, 'events')
, есть ли аналогичный способ в React?
Интересно. Меня больше интересовало обращение к обработчикам на основе DOM Node (или ссылка на компонент), но этот способ может работать тоже – David