我試圖劫持全局方法中的所有按鈕處理程序,並在滿足某些條件時手動觸發處理程序。這裏一個簡單的例子:http://jsfiddle.net/zvy80mpf/劫持React處理函數
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節點(或對組件的引用)訪問處理程序,但這種方式也可能工作 – David 2014-09-01 19:38:26