打字稿中文档的 KeyDown EventHandler 反应

时间:2021-02-23 13:01:31

标签: reactjs typescript types event-handling keydown

我对 react 中的 typescript 比较陌生。根据打字稿,由于事件处理程序类型不正确,以下无法编译 - React.KeyboardEventHandler。由于我是打字稿的初学者,我不知道这有什么问题。你能不能提示我,我怎样才能让这件事发挥作用。

  useEffect(() => {
    const resetHeight: () => void = () => setHeight(window.innerHeight)
    if(!isMobile){
      document.addEventListener('keydown', handlePageChangeByClicking)
    }
    window.addEventListener('resize', resetHeight)
    return () => {
      window.removeEventListener('resize', resetHeight)
      if(!isMobile){
        document.removeEventListener('keydown', handlePageChangeByClicking)
      }
    }
  })

  const handlePageChangeByClicking: React.KeyboardEventHandler<HTMLDocument> = (e) => {
    if(e.keyCode === 38){
      if(current > 0)
        setCurrent(current - 1)
    } else if (e.keyCode === 40){
      if(current < maxSlides - 1)
        setCurrent(current + 1)
    }
  } 

0 个答案:

没有答案