防止默认onpaste

时间:2015-12-23 22:32:48

标签: javascript javascript-events reactjs

我正在尝试在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编辑器,如果这改变了什么。

1 个答案:

答案 0 :(得分:1)

看起来这可能是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')
);

打开控制面板,查看已注销的捕获内容。