这是一个非常好的问题!
发生这种情况是因为React的实际事件侦听器也位于文档的根目录,这意味着click事件已经冒泡到根目录。您可以
e.nativeEvent.stopImmediatePropagation()用来阻止其他事件侦听器。
试试吧:
import React from 'react';import ReactDOM from 'react-dom';import PropTypes from 'prop-types';import ReactDOMServer from 'react-dom/server';import './index.css';class Copy extends React.Component { constructor(props) { super(props); this.state = { time: '', timer: false, counter: 0 }; this.handlerCopy = this.handlerCopy.bind(this); } handlerCopy(e) { console.log(e.target.innerHTML); e.preventDefault(); e.nativeEvent.stopImmediatePropagation(); this.setState(prevState => ({ counter: prevState.counter + 1 })); alert('Don't copy it!'); } render() { return ( <React.Fragment> <p onCopy={this.handlerCopy}>Copy me!</p> <p>Copy count: {this.state.counter}</p> </React.Fragment> ); }}ReactDOM.render(<Copy />,document.getElementById('root'));
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)