我注意到在移动Chrome上,无论是否在表单中,任何按钮都会自动触发页面重新加载作为默认操作。这种行为不会在Safari或桌面Chrome上发生,按钮只是作为按钮。
在某些情况下,这种行为很好,例如1)导航到新页面或2)网络请求等等。但是我有一些onClick
处理程序只能在单个页面的上下文中滚动并且页面刷新会导致该操作丢失。看起来这是移动Chrome的默认按钮行为,我还没有找到办法阻止它。
我有一个用于处理所有onClick
事件的按钮的基本反应组件:
handleClick = (e) => {
e.preventDefault();
e.stopPropagation();
this.props.onClick();
return false;
};
render = () => {
return (
<button type="button" className={ this.props.className } style={ this.props.style } onClick={ this.handleClick }>{ this.props.title }</button>
);
};
现在它应该在每次按下按钮时停止页面触发新请求,但不幸的是,情况并非如此。在禁用按钮默认操作时,我是否还有一些缺失?