我正在尝试在 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 编辑器,如果这有任何改变的话。
最佳答案
看起来这可能是 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')
);
打开控制面板可以看到注销的抓包内容。
关于javascript - 防止默认粘贴,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34444745/