当使用“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();
}
}
}