我正在尝试在React中构建一个自定义的粘贴事件。但是,我有一个问题,如果我使用React事件,event.preventDefault()将在默认操作发生后运行。
代码如下:
render() {
return (
<div
className='compositionText'
onPasteCapture={this.handlePaste}>
</div>
);
}我已经成功地对DOM事件侦听器执行了同样的操作:
componentDidMount() {
this.getDOMNode().addEventListener('paste', this.handlePaste, true);
},谁能告诉我为什么第一种解决方案不起作用,以及我如何用React的方式来实现这一点?
更新:我想补充说,如果有什么改变的话,我正在使用该div中的Trix编辑器。
发布于 2015-12-26 05:32:40
看起来这可能是Trix编辑器的一个问题,因为我可以在这里获得onPasteCapture的工作版本,https://jsfiddle.net/Pyloid/69z2wepo/25126/
var Hello = React.createClass({
handlePaste: function(e) {
e.preventDefault();
console.log(e);
},
render: function() {
return <input type="text" onPasteCapture={this.handlePaste} />;
}
});
ReactDOM.render(
<Hello name="World" />,
document.getElementById('container')
);打开控制面板,查看已注销的捕获内容。
https://stackoverflow.com/questions/34444745
复制相似问题