当使用“up、down、 left、 right”四个按键时,页面会滚动,如何禁止它?

发布于 2020-10-09 22:40
共1个回答
XL
游客xlRpUN

如果你使用的是method decorator,你可以通过传入的event参数来实现:

@keydown( 'up' )
goUp( event ) {
  event.preventDefault();
  ...
}

如果你使用的是 component decorator,keydown.event是作为prop传入的。理论上你可以使用keydown.event.preventDefault(),但是我没有测试过,而且你要考虑到“race condition”会导致这样不会起效。

@keydown( 'up' )
class MyComponent extends React.Component {
  componentWillReceiveProps({ keydown: keydownNext }) {
    const keydownThis = this.props.keydown;
    if ( keydownNext.event && !keydownThis.event ) {
      keydownNext.event.preventDefault();
    }
  }
}
回答问题